[爬虫] Requests下载图片长时间无响应

问题描述

使用 requests 下载网站上的图片时,发现所有 url 均报错 Error: HTTPSConnectionPool(host=xxxx, port=443): Read timed out. 尝试 ping 该网站,也可以 ping 通,但使用 wget 直接在命令行下载同样超时。

超时原因

一些网站对于请求头header验证比较严格,不仅仅会验证 User-Agent。因此尽可能使 requestsheaders参数与浏览器访问的请求体一致。

问题解决

使用浏览器访问图片 url ,右键→检查元素→网络选项卡→图片的 Header 的请求体;
请添加图片描述
将请求体中的内容复制到 requests 的 headers 中(不一定每一项都会用到,可以测试找到被验证的那一项或几项)。

# 以下是我成功访问的 headers,仅供参考,不同网站可能不同
headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Sec-Fetch-Dest': 'document',
    'Sec-Fetch-Mode': 'navigate',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
    'Connection': 'keep-alive',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15',
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值