关于pyhton爬虫报错:ValueError: check_hostname requires server_hostname

爬虫开代理以后,访问https报错信息如标题所示。
原因在于:request.get函数里面需要传入一个header,否则的话,访问https基本都会报这个错误,不管是verify是否等于False
在网上查到并修改代码如下(不需要输入密码认证):

import random
import requests

https =  {'https':'socks5://127.0.0.1:1080'}
http = {'http':'socks5://127.0.0.1:1080'}

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'
}
url = 'https://www.apple.com/hk/?afid=p238%7CsJE6yYjYc-dc_mtid_18707vxu38484_pcrid_491033358408_pgrid_15185283797_&cid=aos-hk-kwgo-brand--slid---product--'

if url.split(':')[0] == 'https':
    page_text = requests.get(url=url,headers=headers,proxies=https).text
else:
     page_text = requests.get(url=url,headers=headers,proxies=http).text

print(page_text)

我试过, 开代理的情况下访问http,有没有header都没关系,不会报错。只有访问https的时候才会报错。
参考链接:https://www.cnblogs.com/robertx/p/10944201.html

你可能感兴趣的:(关于pyhton爬虫报错:ValueError: check_hostname requires server_hostname)