欢迎访问LCE的博客,为你分享产品、技术、设计方面的作品实践和心得。

python requests.get方法值得注意的一个问题

Python lce 8个月前 (11-07) 1182次浏览 已收录 0个评论 扫描二维码

最近学习使用 python 爬虫,于是使用这样的语句进行测试:

html = requests.get(‘http://baidu.com’, proxies={“http”: “http://{}”.format(proxy)}, headers=headers)

这里面 proxy 是通过接口获取到的代理 IP 和端口,print 出来是这样的格式:

b’201.90.36.194:3128′

然后我发现 requests.get 就会报错,大概意思是把 proxies parse 出错了。

python requests.get方法值得注意的一个问题

以上第二条代理 IP,就是原来返回的代理 IP 格式。返回的错误大意是解析代理 IP 出错。

然而,如果我把语句改成:

html = requests.get(‘https://baidu.com’, proxies={“http”: “http://{}”.format(proxy)}, headers=headers)

也就是仅仅将要爬取的 url 换成 https 方式,就会正常。

实在百思不得其解,这点希望了解的点拨一下。

为了解决上述问题,我百度了一下,原来
b’201.90.36.194:3128′

这种返回的格式是以 unicode 编码的。

可以通过.decode().strip()转化一下,就成为

178.128.153.51:8080

这种格式了。

然后就正常了。

也就是将获取代理的语句:proxy = get_proxy()

修改为:

proxy = get_proxy().decode().strip()


LCE的博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python requests.get方法值得注意的一个问题
喜欢 (0)
[liuchn@vip.qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址