2014-10-30 58 views

回答

1

我还没有见过如此强大的解决方案,用于在Python中抓取/索引整个网站,如Scrapy,所以我个人使用Python Scrapy来抓取网站。

但是对于从页面中抓取数据,在nodejs中有casperjs。这是一个非常酷的解决方案。它也适用于ajax网站,例如角-js页面。 Python Scrapy无法解析ajax页面。 因此,为了抓取一页或几页的数据,我更喜欢使用CasperJs。

Cheerio确实比casperjs更快,但它不适用于ajax页面,并且它没有像casperjs这样的良好代码结构。所以我更喜欢casperjs,即使你可以使用cheerio包。

咖啡脚本实例:

casper.start 'https://reports.something.com/login', -> 
    this.fill 'form', 
    username: params.username 
    password: params.password 
    , true 

casper.thenOpen queryUrl, {method:'POST', data:queryData}, -> 
    this.click 'input' 

casper.then -> 
    get = (number) => 
    value = this.fetchText("tr[bgcolor= '#AFC5E4'] > td:nth-of-type(#{number})").trim() 
0

万一你仍然需要一个答案, https://www.npmjs.org/package/scrapy 我从来没有测试过它,但认为它可以帮助。 快乐报废。

+0

该模块不能被配置。它只返回商家名称和电话。我发现了一个可能的解决方案,而不像Scrappy那样。但通过使用Cheerio可以操作页面。就像使用Jquery一样。 – user2422940 2014-12-02 17:59:20