繁体   English   中英

有没有最好的方法来抓取同一域中不同结构的多个页面?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM