星辰幸福 2021-06-15 09:55 采纳率: 80%
浏览 84
已采纳

python的requests库问题

之前用VPN/或者本地网络都能正常使用requests库爬取数据。

重装系统后再次安装python跟requests库。

requests库版本是2.25.1

python是3.8版本

使用本地网络运行都能正常爬取数据。

一旦使用VPN网络。

就出现错误。

raise ValueError("check_hostname requires server_hostname")
ValueError: check_hostname requires server_hostname

请问如何解决。

 

  • 写回答

3条回答 默认 最新

  • 王大师王文峰 企业官方账号 2021-06-15 10:03
    关注

    看一下这个博文:

    报错的原因:
    
    这个其实跟选用的python版本的关系不大,主要原因是因为每次使用 pip install 命令下载插件的时候,下载的都是最新的版本,比如下载requests插件,它会自动的将依赖的urllib3这个插件也安装,然后依赖的插件版本太高,就导致了这个报错的问题。
    
    所以说,一般遇到这种莫名其妙的问题的时候,可以先去看一下是不是插件的问题导致的,解决措施就是 将urllib3插件的版本降低就可以,当然,直接在安装requests插件的时候,选择用低版本也可以解决这个问题。比如用下面的命令指定版本进行安装:
    
    pip install requests==2.20
    或者使用下面的命令降低版本:
    pip install urllib3==1.25.8
    这种类似的问题,在使用一些框架的时候经常会遇到,比如有的小伙伴在学习django,然后照着别人博客写的文章操作,最后报错,很有可能就是插件的版本导致的。
    
    另外,在线安装插件时,如果插件下载过慢,或者报错的话,可以在插件的命令后面加上 -i 指定插件安装的源。
    
    pip install 插件名称  -i http://mirrors.aliyun.com/pypi/simple
    有时候报插件找不到的话,就换一个源试试。
    
    不想每次都指定源进行安装的话 ,那就在用户名下文件夹下建一个pip的文件夹,然后新建pip.ini的配置文件,写入下面的内容就行(具体的源可以自己选择):{创建这个配置文件的存放位置有很多种方式都可以,感兴趣的可以自己去试试,比如pip所在目录下,或者%APPDATA%目录下去新建文件夹。}
    
    [global]
    index-url = http://mirrors.aliyun.com/pypi/simple
    [install]
    trusted-host=mirrors.aliyun.com
    另外,有些插件通过上面的在线方式就是容易出现报错的,可以尝试用离线安装的方式去安装插件,去网上下载whl格式的文件进行安装,比如,可以在下面的链接下下载:
    
    whl格式插件:
    
    https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
    
    pip install xxx.whl
    
    官网下载插件:
    
    https://pypi.org/
    
    

    对你有帮助,就采纳,

    对你没帮助,就别管了,谢谢!

    ——王文峯

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP