首页 > 编程知识 正文

爬虫代理IP,为什么用了代理还被反爬虫

时间:2023-05-03 17:43:28 阅读:145707 作者:1568

除了检测用户代理的身份信息外,一些站点服务还对客户端的ip地址设置了限制,如果同一客户端访问此站点服务器的次数过多,则会被认为是爬虫类,因此会限制客户端的ip访问这样的限制给我们的爬行动物带来了麻烦,所以使用代理ip在爬行动物中是非常必要的。

使用代理ip进行爬行动物会面临两个问题:如何使用,这相对简单,以及如何获取大量的代理ip。 要获取代理ip,可以在代理ip的网站上购买,也可以有免费的代理ip网站。 相对而言,购买的代理ip质量更高。 最后,您可以使用爬行器技术爬几个可用的代理ip。 也就是说,以下主要说明的内容。

1、与之前如何使用代理ip进行爬行器使用请求的形式一样,使用代理ip时在请求方法上设置proxies的参数为{“http”3360“代理IP”}的词典参数值即可

1response=requests.get(URL=URL,headers=headers,2 params=params,proxies={ ' http ' 3360 ' 117.136.27 } 最后一步是验证爬网的代理ip是否可用。 通过验证的代理ip将存储用于后续爬行器。

使用网络下载程序下载网页

1-- -编码: utf-8---- 23 # requests扩展库4import requests 5#导入分析库6from bs4 import BeautifulSoup 7 8# 初始化url地址(此处仅获取首页上显示的ip ) () ) ) ) ) 9URL='http://www.66IP.cn'10#web内容current 11 current WOW64; rv:43.0 ) gecko/20100101Firefox/43.0'16 ) 17 response=requests.get (URL=URL,timeout=5,headers=headers )

导入1#re模块2import re 3 4#以创建正则表达式,并使用ip地址5regx_IP=re.compile(r'^((2)5[0-5]|[0-4]d ]|[ (d ) 1,2 ) ) ) () ) (2)|[0-1] ) d )|[0-1]? (d ) 1,2 ) )6)创建正则表达式port地址7 regx _ port=re.com pile (r ' ^ ([0-9]|[1-9] ) d ) 1, 3 }|[1-9] d {4}|6 [0-5] {2} [0-3] [0-5] $ ' (8)定义初始化列表存储分析后的ip10ip_array=[]1112# 获取要创建分析对象13 beau _ soup=beauti ing ' html.parser所有td标签15TRS=beau_soup.find_all('tr ' ) 1617#, ip和端口18遍历提取18fortrinTRS336019TDS=tr.find ) 20ip _ port=' ' 21 fortdintds :22 if regx _ IP.match (TD.text ) 33336 ip_array.append(IP_port ) 2829# )获取的代理ip30print ip_array3132# )分注IP和端口使用词典格式保存(33ip_dict_list=[] 34 for ipin IP _ array :35 IP _ dict={ ' http ' 3360 IP } 36ip _ dict _ list.append (IP _ dict ) 3738printIP_dict

导入random扩展库,生成随机数2导入random认证代理ip 4#代理IP5proxy=IP _ dict _ list [ random.randint (0, len(ip_dict_list(-1 )6#初始化验证成功的IP数组7ip _ sucess _ array=[ ]8try :9 print '当前代理:',proxy 10 requests . proxies=proxy (11打印'验证成功(12IP_sucess_array.append ) proxy ) 13except Exception,e :14打印'

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。