[英]Is there best way to scrape multiple pages in different structure in same domain with scrapy?
我想抓取相同域中但结构不同的某些页面。
http://example.com/page1
http://example.com/page2
http://example.com/page3
我找到了这个答案,现在正在使用它。 (通过辩论对我来说是可以理解的)
def start_requests(self): #This refers scrapy tutrials
urls = [
'http://example.com/page1',
]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
data_page1 = response.xpath("//body")
yield scrapy.Request('http://example.com/page2', self.parse2,
meta={'data_page1': data_page1})
def parse2(self, response):
data_page2 = response.xpath("//body")
yield scrapy.Request('http://example.com/page3', self.parse3,
meta={'data_page1': data_page1,'data_page2': data_page2})
def parse3(self, response):
data_page3 = response.xpath("//body")
yield {
'data_page1' : response.meta['data_page1'],
'data_page2' : response.meta['data_page2'],
'data_page3' : data_page3
}
但是我认为这不是很好的代码...
有没有最好的方法来更有效地刮取多个页面?
谢谢!
好吧,我不会发现这段代码很糟糕,并一直使用这种方法。 毕竟,在FAQ中提到了从多个页面收集数据的建议方式。 因此,如果您实际上需要从多个页面收集数据并将其作为单个项目产生,则此方法非常有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.