给定一个起始url池,我想在parse_item()函数中识别原始url。
据我所知,scrapy spider从起始url的初始池开始爬行,但是在解析时没有跟踪这些url中的哪个是初始url。怎么可能追踪到起点呢?
如果需要在爬行器中使用解析url,只需使用response.url:
def parse_item(self, response):
print response.url
,但如果你需要它的外部蜘蛛我可以想到以下方法:
- 使用scrapy core api
- 你也可以用OS命令从外部python模块调用scrapy(显然不推荐):
from subprocess import call
urls = 'url1,url2'
cmd = 'scrapy crawl myspider -a myurls={}'.format(urls)
call(cmd, shell=True)
在myspider :
class mySpider(scrapy.Spider):
def __init__(self, myurls=''):
self.start_urls = myurls.split(",")