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
如果您真的希望脚本在该点完全停止,那么可以终止脚本,就像终止任何其他Python脚本一样:use ^{} 。你知道吗
然而,这意味着Scrapy的项目处理和内部工作的其他部分将没有机会运行。如果这对你来说是个问题,除了乌迈尔的回应之外,没有别的办法了。你知道吗
CloseSpider
也将处理所有挂起的请求所以你必须设置
CONCURRENT_REQUESTS=1
相关问题 更多 >
编程相关推荐