python获取代理ip与端口

 

在我们使用python爬虫获取所需资源时,如果被发现违规行为,有可能会被对方服务器禁止本地ip访问,所以获取代理ip与端口进行访问可以预防部分危险,但是一个一个搜索查找代理ip与端口,程序效率太低,因此使用程序获取代理ip与端口是一个好选择。

 

 1 import urllib.request
 2 import re
 3 
 4 # 正则匹配规则
 5 regip = "<td>((?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9])))</td>"
 6 regport = "<td>(\d{2}|\d{3}|\d{4}|\d{5})</td>"
 7 
 8 # 伪装浏览器头信息
 9 header = ("User-Agent", 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0')
10 opener = urllib.request.build_opener()
11 opener.addheaders = [header]
12 urllib.request.install_opener(opener)
13 
14 
15 # 从https://www.xicidaili.com/wn网站获取代理ip
16 def get_ip(m=0, i=1):
17     url = "https://www.xicidaili.com/wn/"+str(i)
18     data = urllib.request.urlopen(url).read().decode("utf-8", "ignore")
19     ListIp = re.compile(regip).findall(data)
20     return ListIp[m]
21 
22 
23 # 从https://www.xicidaili.com/wn网站获取代理端口
24 def get_port(m=0, i=1):
25     url = "https://www.xicidaili.com/wn/"+str(i)
26     data = urllib.request.urlopen(url).read().decode("utf-8", "ignore")
27     ListPort = re.compile(regport).findall(data)
28     return ListPort[m]

 

值得一提的是,其中的m值为网站的页码数,i表示第几条数据,使用时尽量使ip与port的i值相同。

由于https://www.xicidaili.com/wn/网页的布局,所以i尽量不要超过100.当然,参数i和m也不能出现负数。

 

具体怎么导入,怎么使用,相信不需要我多说了,都是基础中的基础。

 

转载于:https://www.cnblogs.com/YLTzxzy/p/11202822.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]提供了一个示例代码,用于爬取西刺代理网站上的免费代理IP。这段代码使用了BeautifulSoup库来解析网页,并提取出IP地址和端口号。通过调用get_ip_list函数,可以获取到爬取到的代理IP列表。 引用\[2\]提供了一个检测IP可用性的函数。该函数使用了requests库发送请求,并设置了代理IP。如果请求成功(状态码为200),则将该代理IP保存在另一个列表。 根据这些引用内容,你可以使用这些代码来实现一个爬虫代理IP的功能。首先,你可以使用引用\[1\]的代码来爬取西刺代理网站上的免费代理IP。然后,使用引用\[2\]的函数来检测这些代理IP的可用性。最后,你可以根据引用\[3\]的运行结果来验证你的代码是否成功获取到了代理IP。 请注意,这只是一个示例代码,你可以根据自己的需求进行修改和优化。同时,使用代理IP需要遵守相关法律法规和网站的使用规定,确保合法合规地使用代理IP。 #### 引用[.reference_title] - *1* *3* [Python网络爬虫(五)——获取代理IP](https://blog.csdn.net/weixin_40431584/article/details/89736159)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Python爬虫实战(二):爬取快代理构建代理IP池](https://blog.csdn.net/yuan2019035055/article/details/121334216)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值