class PythonEventsSpider(scrapy.Spider):
name = 'goodspider'
start_urls=['https://www.amazon.com/s?me=A33IZBYF4IBZTP&marketplaceID=ATVPDKIKX0DER']
details=[]
def parse(self, response):
base_url="https://www.amazon.com"
#code here
next_page=base_url+response.xpath('//li[@class="a-last"]/a/@href').extract_first()
print(next_page)
if "page=3" not in next_page:
yield scrapy.Request(url=next_page,callback=self.parse)
else:
#raise CloseSpider('bandwidth_exceeded')
#exit("Done")
您好,我想在进入第3页时停止该程序,网址如下https://www.amazon.com/s?i=merchant-items&me=A33IZBYF4IBZTP&page=3&marketplaceID=ATVPDKIKX0DER&qid=1555628764&ref=sr_pg_3
。我已经在线尝试了一些答案,但是该程序无法继续运行。我想要在else
语句中添加一行或一个函数以结束scrapy runspider test.py -o test.csv
答案 0 :(得分:0)
CloseSpider
也将处理所有待处理的请求
因此您必须设置CONCURRENT_REQUESTS=1
答案 1 :(得分:0)
如果您确实希望脚本在那时完全停止,则可以终止脚本,就像对其他任何Python脚本一样:use sys.exit()
。
但是,这意味着Scrapy的项目处理和内部工作的其他部分将没有运行的机会。如果这对您来说是个问题,那么除了Umair的回应之外,别无他法。