Python爬虫设置动态代理(在线获取)

当爬虫面临大量请求导致IP可能被封时,除了设置请求间隔,还可以使用动态代理来降低风险。本文介绍从网站获取代理IP并组装为Python爬虫可用的代理字典,通过定时更换IP来提高爬虫的存活率。
摘要由CSDN通过智能技术生成

问题

在写爬虫的早期,一些小的练手项目,并不会涉及到IP的问题,用默认的网络爬一下就OK了。但是一旦面临较大的数据量,较多条目的数据,意味着更多的请求。就有了自己默认IP被封的可能性。一个合格的网站为了防止服务器负载过大,也应该设置这样的机制来限制频繁请求。
那么我们写爬虫的人该如何处理这种情况呢?

解决

为了防止一个IP访问过于频繁而造成的的拒绝访问,治标的方法是,在求请访问的时候设置一定的时间间隔


import time
......
time.sleep(10)
....

这种方法对于很多的网站已经是足够对付了,但是仍然有一定的风险,尤其是数据量很大的时候。
治本的方法是,设置动态代理
直接来看代码:

    def get_ip_list(self):
        print("正在获取代理列表...")
        url = 'http://www.xicidaili.com/nn/'
        html = requests.get(url=url, headers=self.headers).text
        soup = BeautifulSoup(html, 'lxml')
        ips = soup.find(id='ip_list').find_all('tr')
        ip_list = []
        for i in range(1, len(ips)):
            ip_info = 
  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值