你能告诉我里面可能有什么错误吗?我正在尝试从Flipkart中抓取物品
import scrapy
class flipkart_scrapy(scrapy.Spider):
name = 'flipkart'
urls = ['https://www.flipkart.com/televisions/pr?sid=ckf%2Cczl&p%5B%5D=facets.brand%255B%255D%3DMi&otracker=categorytree&p%5B%5D=facets.serviceability%5B%5D%3Dtrue&p%5B%5D=facets.availability%255B%255D%3DExclude%2BOut%2Bof%2BStock&otracker=nmenu_sub_TVs%20%26%20Appliances_0_Mi']
base_url = urls[0]
page_no = 2
next_page = base_url + '&page=' + str(page_no)
def parse(self, response):
for product in response.css("div._2kHMtA"):
yield {
'name': product.css("div._4rR01T::text").get(),
'price': product.css('div._30jeq3._1_WHN1::text').get(),
'rating': product.css("div._3LWZlK::text").get(),
}
if self.next_page is not None:
yield response.follow(self.next_page, callback=self.parse)
self.page_no += 1
self.next_page = self.base_url + '&page=' + str(self.page_no)
这是我正在运行的代码:scrapy crawl flipkart
你能告诉我里面可能有什么错误吗?我正在尝试从flipkart
中抓取项目,但没有抓取任何内容
1条答案
按热度按时间qojgxg4l1#
您的spider不会做任何事情,因为您没有定义
start_requests
或start_urls
。来自
scrapy.Spider
的scrapy API文档:这是最简单的spider,也是所有其他spider都必须继承的spider(包括Scrapy附带的spider,以及您自己编写的spider)。它不提供任何特殊功能。它只是提供了一个默认的
start_requests()
实现,它从start_urls
spider属性发送请求,并为每个结果响应调用spider的方法parse。要解决这个问题,您需要做的就是将spider的
urls
属性更改为start_urls
。或者重写start_requests
方法。例如: