2016-09-19 78 views
1

给定一个启动URL的池我想在parse_item()函数中标识原始URL。Scrapy - 如何跟踪启动网址

就我而言,scrapy蜘蛛开始从最初的启动URL池中爬取,但是在解析时没有追踪哪个url是最初的url。如何能够跟踪起点?

回答

0

如果你需要的蜘蛛内部解析的网址,只需使用response.url:

def parse_item(self, response): 
    print response.url 

,但如果你需要它外面的蜘蛛,我能想到的方法如下:

  1. 使用scrapy core api
  2. 您也可以通过OS命令从外部python模块调用scrapy(显然不推荐):

在scrapycaller.py

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(",")