在一次爬取图片链接过程中,发现图片路径不完整
度娘了好半天,对URL路径拼接的方案有两种:
1.urllib.parse.urljoin()
2.进行字符串的拼接
但是我的爬虫继承的事crawlspider,无法重写parse(重写就用不了它的方法了)
然后itemloader,无法在spider里进行上面这两种拼接方法,就尝试了在pipeline进行拼接,但是urljoin需要的url怎么获取?
于是使用了一个笨办法
def process_item(self, load_item, spider):
"""进行数据保存操作"""
url = spider.url
if "image" in load_item:
print(load_item["image"])
for i in load_item["image"]:
load_item["image"] = list(map(lambda x: url.urljoin(x), load_item["image"]))
通过类属性,将response传递给pipeline,然后在process_item根据spider进行接收,但是图片有很多,每一个都需要进行拼接
于是使用map()函数进行拼接
map()需要接收两个变量,一个函数,一个列表
OK,搞定