我想写一个抓取脚本来检索cnn文章的评论。例如,这篇文章:http://www.cnn.com/2012/01/19/politics/gop-debate/index.html?hpt=hp_t1使用disqus从网站检索评论
我知道cnn使用disqus进行评论讨论。由于评论加载不是基于网页(即上一页,下一页)并且是动态的(即需要点击“加载下一个25”),我不知道如何检索这篇文章的所有5000多条评论。
任何想法或建议?
非常感谢!
我想写一个抓取脚本来检索cnn文章的评论。例如,这篇文章:http://www.cnn.com/2012/01/19/politics/gop-debate/index.html?hpt=hp_t1使用disqus从网站检索评论
我知道cnn使用disqus进行评论讨论。由于评论加载不是基于网页(即上一页,下一页)并且是动态的(即需要点击“加载下一个25”),我不知道如何检索这篇文章的所有5000多条评论。
任何想法或建议?
非常感谢!
抓取(其他然后获取页面)的选项,可能不太健壮(取决于你的需要),但会提供一个解决方案,你有问题,是使用某种包装满周围成熟的网络浏览器,并从字面上编码使用模式并提取相关数据。因为你没有提到你知道哪种编程语言,所以我给出3个例子:1)Watir - ruby,2)Watin - IE & Firefox via .net,3)Selenium - IE通过C#/ Java/Perl/PHP /拼音/ Python
我将使用华廷& C#提供了一个小例子:
IE browser = new IE();
browser.GoTo(YOUR CNN URL);
List visibleComments = Browser.List(Find.ById("dsq-comments"));
//do your scraping thing
Link moreComments = Browser.Link(Find.ByClass("dsq-paginate-append-text");
moreComments.click();
//wait util ajax ended by searching for some indicator
Browser.WaitUntilContainsText(SOME TEXT);
//do your scraping thing
注意: 我不熟悉disqus,但它可能是一个更好的选择,迫使所有的评论通过循环显示链接&点击我发布的部分代码,直到所有评论都可见并且清除List元素dsq-comments
我需要通过刮取通过ajax发布disqus评论的页面来获得评论。因为它们不在服务器上呈现,所以我不得不调用disqus api。在源代码中,您需要标识码:
var identifier = "456643" // take note of this from the page source
// this is the ident url query param in the following js request
另外,请在js源代码中查看页面的公钥和论坛名称。将这些放在适当的URL中。
我使用的JavaScript来的NodeJS测试这一点,即:
var request = require("request");
var publicKey = "pILMw27bsbJsdfsdQDh9Eh0MzAgFL6xx0hYdsdsdfaIfBHRvLGqFFQ09st";
var disqusUri = "https://disqus.com/api/3.0/threads/listPosts.json?&api_key=" + publicKey + "&thread:ident=456643&forum=nameOfForumFromSource";
request(disqusUri, function(res,status,err){
console.log(res.body);
if(err){
console.log("ERR: " + err);
}
});
你问如何凑?或者你知道如何使用某种工具来刮擦,并且你需要帮助来挖掘一个基于disqus的评论系统?如果它的后者然后重新提出您的问题,包括工具的名称 – Boaz
您好Boaz.Jan,我问如何刮。对于基于网页的新闻通讯页面,例如http://www.guardian.co.uk/politics/2012/jan/10/scottish-independence-referendum-autumn-2014?commentpage=1,我们只需要将评论页面替换为2 ,3,4 ..我们可以做一个http get来下载页面并刮掉它。使用disqus,似乎没有办法检索所有评论与http get ... – qwertyl