Scrapy Splash Crawling Javascript网站

时间:2018-02-16 20:04:12

标签: python scrapy scrapy-splash

我可以使用以下代码抓取Javascript呈现的页面:

import scrapy
from scrapy_splash import SplashRequest

class QuotejscrawlerSpider(scrapy.Spider):
    name = 'quotejscrawler'

    def start_requests(self):
        yield SplashRequest(
             url = 'http://www.horsedeathwatch.com/',
             callback=self.parse,
         )

    def parse(self, response):
        for quote in response.xpath("//tr"):
            item = {
                'horse': quote.xpath('td[@data-th="Horse"]/a/text()').extract(),
                'date': quote.xpath('td[@data-th="Date"]/text()').extract(),
                'cause': quote.xpath('td[@data-th="Cause of Death"]/text()').extract(),
            }
            yield item

我想通过点击"下一页"来抓取多个页面。每个网页上的按钮。我是新手。 有什么建议吗?

1 个答案:

答案 0 :(得分:2)

从我可以收集到的内容中,似乎有两种(非python)方式来处理脚本:

  • 通过js_source参数
  • 传递javascript代码
  • 通过lua_source参数传递lua代码(有一些examples显示如何使用scrapy-splash执行此操作)

那就是说,我认为对网站提出的请求进行逆向工程并在你的python代码中实现这些请求会更简单(至少在这种情况下),完全避免了飞溅的需要。