使用Node.js进行刮擦

时间:2013-03-23 05:54:35

标签: jquery node.js screen-scraping

我有一个奇怪的问题 -

由于这个网站提供时间数据的奇怪方式,我想写一个小解析器。

我正在一个特定的网址上测试我的代码 -

http://www.sfweekly.com/search/results/?keyword=*&type=events#type:events/page:57/

请注意,当您访问该网址时,该网页会首先加载一堆条目,然后更改这些条目。发生了什么事情,它将进入第一页,然后重新指导。我该如何解决这个问题?

抓我正在使用

jsdom.env({
    html: url,
    scripts:['http://code.jquery.com/jquery.js'],
    done: function(errors,window){
                 //doSomething

我原本以为我可以暂停一下,但事实并非如此。有没有什么方法可以“监听”重定向并等到真正的页面被加载?我也有一种感觉,可以使用jquery替换输入新条目,但我不确定如何测试该理论。

1 个答案:

答案 0 :(得分:0)

刮掉像这样的ajax-y网站真的很痛苦。在这种情况下,似乎有一种解决方法,因为您可以在所选浏览器中的开发人员工具中窥探并发现ajax端点,并直接使用它:

http://www.sfweekly.com/search/ajaxsearch/type%3aevents/page:57/

在某些情况下,javascript-y网站故意试图挫败刮刀,你必须使用某种无头或自动浏览器的情况。这很慢而且很烦人,如果可以,请避免使用它。