欢迎光临lce.cc,我是一名技术出身的互联网产品经理和创业者,对产品、运营、设计、建筑、互联网、路由器、区块链等领域都有较深入的研究,对历史、哲学、心理学、政治也比较感兴趣,欢迎同样有兴趣的一起交流。我的邮箱:a#lce.cc

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

Python lce 162℃ 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出错了。

以上第二条代理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()

转载请注明:长风破浪会有时,直挂云帆济沧海 » python requests.get方法值得注意的一个问题

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

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

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