我正在尝试使用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)
答案 0 :(得分:0)
为什么你认为你做错了什么?它是否显示任何错误?如果是这样,输出应该首先包含在问题中。如果它没有达到你的预期,那么你应该告诉我们。
无论如何,看看代码,至少有两个可能的错误:
allowed_domains
应该只是一个域名,而不是完整的网址,如documented。Request
时,您应该使用callback=self.parse
代替self.praise
以与第一个网址相同的方式处理回复