使用代理IP实现爬虫

编程入门 行业动态 更新时间:2024-10-28 18:34:08

使用代理IP实现<a href=https://www.elefans.com/category/jswz/34/1770264.html style=爬虫"/>

使用代理IP实现爬虫

1.使用代理ip爬虫
我们在进行爬虫任务的时候经常会遇到网站设置的反爬关卡,比如限制单个ip一秒或者几秒内访问服务器几次,超过这个次数就把这个ip拉进"黑名单",我们一般自己的网络只有一个ip,ip封了就没办法继续访问这个网站了,那我们怎么办呢,我们可以使用别人的ip去访问啊,这样就算封了,我们再换一个就好了。
2。获取代理IP池
这里我是从一个资源网站找的/{}/
首先我们请求该网站,并解析页面。

proxy = []        #空的数组,用来存放IP
def askurl(url):head = {"User-Agent": "Mozilla/5.0"}  #设置请求头r = requests.get(url, time.sleep(1),headers=head)#requests模块,返回json格式数据html = etree.HTML(r.text)  #使用etree将字符串转换成element对象ips = html.xpath("//td[@data-title='IP']//text()")  #使用xpath语句获取到当前页面中的ipports = html.xpath("//td[@data-title='PORT']//text()")#同理获取到port

接下来我们就要”组装“IP地址,我们知道一般我们完整的IP地址格式为http://192.168.1.1:8888(举例说明),前面为我们的协议格式,也可以为https格式,中间部分是我们的ip地址,:后面的为端口号,一个完整的IP地址应该为这样,所以我们根据获取到的IP和端口号组装成一个完整的IP。

    for ip, port in zip(ips, ports):   #对两个数组进行遍历line = ip+':'+port             #line为IP+端口号proxy_temp = {"http":'http://'+line}  #前面部分声明使用的协议,后面用于拼接proxy.append(proxy_temp)  #将拼接好的IP放到数组里

这样我们的IP代理池已经创建好了,接下来就来访问具体的地址

urla = ''  #目标网址for pro in proxy:                     #遍历代理池try:res = requests.get(urla,headers=head, proxies=pro)# print(res.text)print(res)print(pro)except Exception as e:#这里需要注意的是在python3.7往后必须使用 as e,不然会报错,之前版本使用的是 except Exception, e:print(pro)print(e)continue

最后我们看看输出的结果:

<class 'requests.models.Response'>
<Response [200]>
{'http': 'http://27.43.188.247:9999'}
<Response [200]>
{'http': 'http://112.195.154.238:1133'}
<Response [200]>
{'http': 'http://120.83.104.78:9999'}
<Response [200]>

这里我们输出的不是element格式,在上面修改一下即可,不过确定的是我们可以访问成功,至此,一个代理IP实现爬虫就实现了。

更多推荐

使用代理IP实现爬虫

本文发布于:2023-07-28 18:00:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1269636.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫   IP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!