【发布时间】:2014-01-17 14:48:08
【问题描述】:
我将能够检索存储在 Twitter Card (https://dev.twitter.com/docs/cards) 中的内容的 HTML 标记。
到目前为止,我使用 TweetSharp 库从某个用户的时间轴中检索推文。但是,这并不奇怪,因为卡片是新事物,它不包括在内。
有谁知道,是否可以使用 API 访问卡片(Twitter 爬虫缓存的数据)?
【问题讨论】:
标签: twitter
我将能够检索存储在 Twitter Card (https://dev.twitter.com/docs/cards) 中的内容的 HTML 标记。
到目前为止,我使用 TweetSharp 库从某个用户的时间轴中检索推文。但是,这并不奇怪,因为卡片是新事物,它不包括在内。
有谁知道,是否可以使用 API 访问卡片(Twitter 爬虫缓存的数据)?
【问题讨论】:
标签: twitter
Twitter api 不提供开箱即用的 twitter-card 信息。您可以通过在其 html 中查找来提取 url 的卡信息。 csharp中的以下代码从url获取卡片图像src-
public static TweetMedia[] GetTwitterCardDetails(string url)
{
string HTML;
using (var wc = new WebClient())
{
HTML = wc.DownloadString(url);
}
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(HTML);
HtmlNode element = doc.DocumentNode.SelectSingleNode("//meta[@name='twitter:image:src']");
if (element != null)
{
return new TweetMedia[] { new TweetMedia { url=url, media_url_https = element.Attributes["content"].Value, type = TweetTypes.TweetType.Photo.ToString() } };
}
return null;
}
【讨论】:
Twitter 卡片本身不通过 Twitter API 公开。
您需要做的是向提到的 URL 发出请求,并检查 <head> 元素以查看其中是否有 Twitter Card 信息。
【讨论】: