Scrapy 使用 ImagePiple 下载图片时,图片地址需要做一次 301 跳转,这导致下载图片失败,是否可以在下载中间件里修复,网上没有搜到解决办法

2017-09-28 08:37:08 +08:00
 anywalker707

RT,301 跳转都一个 CDN 的地址,我目前的做法是在 pipeline 中手动加入一个替换,可以完成下载:

def get_media_requests(self, item, info):
    for img_url in item['imageUrlList']:
        referer = item['imageTitleUrl']
        img_url = img_url.replace('oldURL', 'new_CDNURL')

        yield Request(img_url, meta = {'item': item,
                                       'referer': referer})

但总感觉这样做有风险,因为 CDN 的 url 可能是变化的,我这里写死了,求指点合适的解决办法

2100 次点击
所在节点    Python
2 条回复
anywalker707
2017-09-28 20:49:59 +08:00
这个问题不难吧。。。
onlyice
2017-10-01 10:56:11 +08:00
301 为啥就下载失败? Scrapy 应该会自动跳转 301 吧。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/394216

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX