我可以使用以下代码抓取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
我想通过点击"下一页"来抓取多个页面。每个网页上的按钮。我是新手。 有什么建议吗?
答案 0 :(得分:2)
从我可以收集到的内容中,似乎有两种(非python)方式来处理脚本:
js_source
参数lua_source
参数传递lua代码(有一些examples显示如何使用scrapy-splash
执行此操作)那就是说,我认为对网站提出的请求进行逆向工程并在你的python代码中实现这些请求会更简单(至少在这种情况下),完全避免了飞溅的需要。