我正在使用 Scrapy 来抓取一些页面。我从 Excel 工作表中获取 start_urls,并且需要将 url 保存在项目中。
class abc_Spider(BaseSpider):
name = 'abc'
allowed_domains = ['abc.com']
wb = xlrd.open_workbook(path + '/somefile.xlsx')
wb.sheet_names()
sh = wb.sheet_by_name(u'Sheet1')
first_column = sh.col_values(15)
start_urls = first_column
handle_httpstatus_list = [404]
def parse(self, response):
item = abcspiderItem()
item['url'] = response.url
问题是该 url 被重定向到其他某个 url(因此在响应 url 中给出了其他内容)。如何获取从 Excel 中获取的原始 url?
您可以在其中找到您需要的内容response.request.meta['redirect_urls']
.
引用自docs http://doc.scrapy.org/en/latest/topics/downloader-middleware.html#std:reqmeta-redirect_urls:
请求经过的 URL(在重定向时)可以
可以在redirect_urls Request.meta 键中找到。
希望有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)