【发布时间】:2018-11-20 18:07:38
【问题描述】:
我想要用户的 Twitter 推文用于数据分析。为此,我使用了HtmlAgilityPack 包来抓取 Twitter,它给了我 30 条热门推文。
我识别了 tweet-text 元素并获取了所有推文。但我想确定它是推文还是转推。我该怎么做?
我已经分析了 HTML。在转推中将有一个具有tweet-context with-icn 类的元素。但是,当我在该类上抓取推文时,它会引发空异常,因为并非所有推文都具有该类。然后根据什么以及如何抓取来知道它是否被转发?
代码:
HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("https://twitter.com/BarackObama");
var TweetsNode= doc.DocumentNode.SelectNodes("//tr[@class='tweet-container']").ToList();
foreach (var item in TweetsNode)
{
var tweet = new Tweets
{
console.WriteLine(item.innertext);
};
}
在上面的代码中,我尝试获取有关 Barack Obama 个人资料的推文。我收到了前 30 条推文。我如何识别哪个是转发的?
谢谢。
【问题讨论】:
-
看来你已经用你自己的第 3 段回答了第 2 段中的问题。你能具体说明你的问题是什么吗?
-
你想要什么结果?一个包含 30 个推文的列表对象,每个推文都有一个标志
IsRetweet? ???? -
这是一个“无代码”问题。告诉我们您到目前为止尝试了什么以及您遇到的问题。您已经表明您通常可以抓取推文,因此您只需要找到使转推独特的东西(例如
js-retweet-text)类。坦率地说,你应该展示你已经尝试过的代码。 -
包含代码几乎总能让您更清楚您要完成的工作,甚至可能让我们(哦,我不知道)自己尝试并帮助找到解决方案。跨度>
-
@Neelam 相当于你的“项目”。
标签: c# filter web-scraping html-agility-pack tweetr