Python爬虫--IP代理池的构建

一、为什么要使用代理IP

1.爬虫的时候,被爬网站是有反爬虫机制的,如果使用一个IP反复访问一个网页,就容易被出现IP限制,无法再对网站进行访问,这时就需要用到代理IP。
2.如果工作任务量大,抓取速度快,目标服务器会容易发现,所以就需要用代理IP来换IP后再抓取。
3.爬虫在抓取一个网站数据的时候,有非常大的几率会被拉黑封锁。使用代理IP更换不同IP,对方网站每次都以为是新用户,自然就没有拉黑的风险。
我们用代理IP就是为了隐藏自身IP,防止自身的IP被封锁。

作者:IPIDEA全球HTTP
链接:https://www.zhihu.com/question/277530486/answer/1801329534
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

二、实例

1、IP代理的构建

import urllib.request
ip = "58.19.62.171:4287"
proxy = urllib.request.ProxyHandler({"http": ip})
opener = urllib.request.build_opener(proxy, urllib.request.HTTPHandler)
urllib.request.install_opener(opener)
url = "http://www/baidu.com"
data1 = urllib.request.urlopen(url).read()
data = data1.decode("utf-8", "ignore")
print(len(data))
fh = open("C:\\Users\\阿娇啊\\Desktop\\a\\ip_baidu.html", "wb")
fh.write(data1)
fh.close()

2、IP代理池的构建
第一种方式:将已有代理IP放在列表里,用random.choice方式随机选取,此方法适用于IP代理池稳定的情况

import random
import urllib.request
ip_pools = ["xxx", "xxx", "xxx"]
def ip(ip_pools):
    this_ip = random.choice(ip_pools)
    proxy = urllib.request.ProxyHandler({"http": this_ip})
    opener = urllib.request.build_opener(proxy, urllib.request.HTTPHandler)
    urllib.request.install_opener(opener)
for i in range(0,3):
    try:
        ip(ip_pools)
        url = "http://www.baidu.com"
        data1 = urllib.request.urlopen(url).read()
        data = data1.decode('utf-8', 'ignore')
        fh = open("C:\\Users\\阿娇啊\\Desktop\\a\\ip_baidu_"+str(i)+".html", "wb")
    except Exception as err:
        print(err)

第二种方式:以获取代理IP接口的形式
如以大象代理接口为例,用接口调用的形式获取ip,其中tid为订单号,num为获取代理IP的数量,foreign=only为国外ip

this_ip = urllib.request.urlopen("http://tvp.daxiangdaili.com/ip/?tid=559126871522487&num=1&foreign=only")

注:使用IP代理池,需使用try……except,因为代理IP一般不稳定,容易失效

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值