问题描述:

今天写爬虫程序用了一下付费代理,众所周知,用代理可以通过使用海量的ip应对网站的反爬虫机制。

使用的是python语言,先用的requests库,核心代码如下:

def get_random_proxy():#随机选择一个代理ipip_list = getIpList()random_ip =  ip_list[random.randint(0,len(ip_list)-1)]res = {'http':'http://用户:密码@' + random_ip,'https': 'https://用户:密码@' + random_ip}return resdef open_url(url):header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1'}response = requests.get(url , proxies=get_random_proxy(),headers=header)return response.content

为了检测一下代理是否成功,我用open_url()函数访问了http://httpbin.org/get,发现每次返回的ip都不一样,说明这个代理成功了。

为了进一步验证,我又使用open_url()函数访问了https://2021.ip138.com,结果出现了问题。报了“407代理需要认证”这个错误。我检查了一下上述代码中https的用户和密码发现没有写错。在网上也没收到这种情况的解决方案。

尝试解决:

1.跳过ssl证书验证

因为http网站能正常访问,而https网站就出问题了,所以我尝试了一下在requests发起请求时加上verify=False这个参数,让它跳过ssl证书验证。

response = requests.get(url , proxies=get_random_proxy(),headers=header,verify=False)

结果,依然报“407代理需要认证”。

2.联系代理提供商

联系了一下代理提供商的客服,说认证一般就是账号密码认证或者白名单。我尝试了一下将自己的ip添加到白名单,但是又不知道自己的公网ip地址是多少。因为不同ip查询网站上显示的ip都不一样,我索性把上述提到的两个ip查询网站上的ip和内网ip都加到了白名单上。再次尝试,还是407。后来发现我在使用代理的时候它会自动把我的ip加入到白名单,但是,管他呢,依然407。

3.测试代理可用性

我随便选择了一个代理ip,把它设为我的win10系统的代理服务器。然后用浏览器访问百度,弹出让我输入账号密码认证,我输完之后页面还是没加载出来。我又访问http://httpbin.org/get,又弹出让我输入账号密码,我输入之后网页正常显示。然后我又访问百度等其他页面,这时就不用了输入账号密码了,就像平时上网一样。

做完这番验证之后,推断该代理本身是可以访问https网站的,问题可能出在python的requests上。

4.尝试urllib

既然requests不行,那就试试urllib。

def open_url(url):proxy_support = urllib.request.ProxyHandler(get_random_proxy())opener = urllib.request.build_opener(proxy_support)header=('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1')opener.addheaders = [header]response = opener.open(url)return response.read()

于是修改open_url()为上述代码。再用open_url()访问https://2021.ip138.com,访问了好几次,发现有时候报ssl错误或者407错误,有时候可以正常访问。而且返回的ip地址不一样,说明使用代理成功了。

就这样用代理爬了一会数据,也是一会报错一会正常,可以爬到点数据。然而,过了一会又爬不到数据了,问题是命令行也不弹错误了。然后重新运行发现全是ssl错误,一次正常访问都没有。what happened。心累啊。

python 爬虫 付费代理相关推荐

  1. python爬虫设置代理ip池

    在使用python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,那如何解决呢?使用代 ...

  2. python爬虫设置代理ip池——方法(一)

    """ 在使用python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网 ...

  3. Python 爬虫使用代理 IP 的正确方法

    代理 IP 是爬虫中非常常用的方法,可以避免因为频繁请求而被封禁.下面是 Python 爬虫使用代理 IP 的正确方法: 1. 选择可靠的代理 IP 供应商,购买或者免费使用代理 IP 列表. 2. ...

  4. 【实战】Python爬虫之代理使用详解

    在Python爬虫中,代理的使用非常常见.代理的主要作用是隐藏客户端的真实IP地址,从而实现更高的网络访问速度和更好的访问隐私保护.下面我们将通过Python爬虫的实例,带你详细了解Python爬虫中 ...

  5. python爬虫使用代理ip_python爬虫如何设置代理ip

    python爬虫设置代理ip的方法:首先写入获取到的ip地址到proxy:然后用百度检测ip代理是否成功,并请求网页传的参数:最后发送get请求,并获取返回页面保存到本地. [相关学习推荐:pytho ...

  6. python爬虫面试代理池_python - 如何为爬虫构建代理池

    问 题 为了避免爬虫被封 IP ,网上搜索教程说需要建立代理池.但是付费代理都好贵...不过好在网上已经有不少免费提供代理的网站了.因此,我打算写个爬虫去获取这些免费 IP - 策略步骤 用种子关键词 ...

  7. Python爬虫-IP代理池和代理池设计

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:小小科 ( 想要学习Python?Python学习交流 ...

  8. python爬虫ip代理池_爬虫教程-Python3网络爬虫开发——IP代理池的维护

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 准备工作 要实现IP代理池我们首先需要成功安装好了 Redis 数据库并启动服务,另外还需要安装 Aiohttp.Requests.RedisPy.PyQ ...

  9. python爬虫免费代理池_Python爬取免费代理搭建代理池

    我们在做爬虫的过程中经常会遇到这样的情况:最初爬虫正常运行,正常抓取数据,一切看起来都是那么美好,然而一杯茶的功夫可能就会出现错误,比如403Forbidden:这时候网页上可能会出现 "您 ...

最新文章

  1. Nature子刊:用16S及18S rRNA全长进行微生物多样性研究
  2. 黄海广博士的机器学习个人笔记及深度学习笔记
  3. 【BZOJ】3771: Triple FTT+生成函数
  4. libnids抓不到包
  5. Hadoop中-put和-copyFromLocal的区别
  6. Spring Boot 实战系列课程终于齐啦~
  7. implementation of UI5 bindAggregation - busyDialog is handled automatically
  8. 固态硬盘 linux 文件系统,SSD是否需要使用特别的文件系统?
  9. 回顾Google IO 2016 -Keynote【图解】
  10. mysql查看前十行_head 命令 读取文件的前n行,默认查看文件的前十行
  11. 如何阅读PBRT3?
  12. 自然语言处理课程作业 中文文本情感分类
  13. 惠普笔记本电脑重装系统后找不到引导设备
  14. qq2007服务器中断,自动重启pubwin2007服务器脚本
  15. 【R】【课程笔记】04+05 数据预处理+收益率计算
  16. 中州韵输入法 linux 小鹤双拼,在deepin 15.10系统fcitx框架下添加rime小鹤双拼的方法...
  17. excel电子表格插件_电子表格的美好时光
  18. 计算机网络 万维网的文档
  19. 火狐(FireFox)黑客常用插件
  20. dell中小企业商用台式机Vostro4667 win10家庭中文版重装成win7版

热门文章

  1. Dnsmasq (简体中文)
  2. 大宋王朝王国的命运——何辉著
  3. [笔记]SSH 端口转发
  4. 还在埋头干活?给程序员的几个忠告
  5. leetcode 回溯算法 17. 电话号码的字母组合
  6. 终端软件测试风险,浅谈三大终端测试 - 测试泡泡 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  7. intel 服务器芯片8180,Intel Xeon Platinum 8180M报价52000
  8. ios与安卓的时间兼容问题
  9. 潘多拉游戏机用linux,linux中的潘多拉! Busybox!
  10. Kernel Knights (Gym - 101480K)