scrapy下载不了图片,提示403错误

在使用Scrapy爬取网站图片时遇到403错误,可能原因是网站反爬策略或headers设置不当。解决方案包括设置User-Agent、Referer、Cookie等,以及正确处理DEFAULT_REQUEST_HEADERS与自定义headers的关系。通过调整settings.py和pipelines.py中相关配置,成功解决douban电影Top250图片下载问题。
摘要由CSDN通过智能技术生成

问题:图片链接在浏览器打开没问题,但是在代码里面就是下载不了数据,提示403错误

可能原因:

原因一:抓取的网站有反爬虫机制,需要设置User-Agent,Referer,Cookie,时间间隔之类的,网上大部分文章也是这样说。

原因二:headers设置问题,这也是我遇到的问题,重点来了,原来ImagePipeline的headers是用settings里面的DEFAULT_REQUEST_HEADERS默认值为基础再叠加上自己设置的headers,也就是说你不止在下载图片的pipeline里面设置好了headers就行,你还要考虑到DEFAULT_REQUEST_HEADERS里面的设置,试了大半天才知道原因,一般DEFAULT_REQUEST_HEADERS里面只放User-Agent,然后在调用的时候根据需要去修改headers。

用来抓取douban练习的:https://movie.douban.com/top250

关键代码如下:

settings.py

注意图片下载路径只能用IMAGES_STORE,不能自己定义,不然图片下载对应的pipeline不会被激活,然后也下载不了图片。

IMAGES_EXPIRES = 30 # 30天内不重复抓取

import os


DEFAULT_REQUEST_HEADERS = {

'User-Agent': '
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值