如何使用Scrapy从多个页面中抓取数据?

时间:2018-02-18 20:23:07

标签: python scrapy

我正在尝试使用Scrapy从多个页面中抓取数据。我正在使用下面的代码,我做错了什么?

import scrapy 
class CollegeSpider(scrapy.Spider):

    name = 'college'
    allowed_domains = ['https://engineering.careers360.com/colleges/list-of-engineering-colleges-in-India?sort_filter=alpha']
    start_urls = ['https://engineering.careers360.com/colleges/list-of-engineering-colleges-in-India?sort_filter=alpha/']
    def parse(self,response):
        for college in response.css('div.title'):
            if college.css('a::text').extract_first():
                yield {'college_name':college.css('a::text').extract_first()}
    next_page_url=response.css('li.page-next>a::attr(href)').extract_first()
    next_page_url=response.urljoin(next_page_url)
    yield scrapy.Request(url=next_page_url,callback=self.praise)

1 个答案:

答案 0 :(得分:0)

为什么你认为你做错了什么?它是否显示任何错误?如果是这样,输出应该首先包含在问题中。如果它没有达到你的预期,那么你应该告诉我们。

无论如何,看看代码,至少有两个可能的错误:

  • allowed_domains应该只是一个域名,而不是完整的网址,如documented
  • 当您向下一页提供新的Request时,您应该使用callback=self.parse代替self.praise以与第一个网址相同的方式处理回复