西刺代理爬虫程序:提取免费代理ip
技术栈:python,requests,正则表达式,bs4,xpath
- 前言
现在很多网站都有反爬虫功能,常见的有判断user-agent,判断一个ip访问服务器的频率。这里我们将第二种,从ip入手,如果每次请求都切换一个ip,这样就可以有效避免被网站封ip了。对于大多数新生不想去买付费代理ip,可以去免费ip代理网站爬取免费的代理ip。这里我们用西刺代理 点击进入链接
值得注意的一点是代理ip的种类,高匿的代理访问服务器才会认为是代理ip访问的,透明的ip访问实际上访问的还是你本地的ip
-
开始分析网页
- 首先打开用chrome打开西刺高匿ip地址,按下f12查看html

- 用chrome html工具找到ip所在的表格

我们可以看到所有的ip在一个id为ip_list的表格中 - 提取数据的方法.这里给大家介绍几种常见的方法
- 用python的第三方包bs4来解析网页获取ip
- 用python自带的模块re使用正则表达式来提取
- 用python第三方包lxml里面的xpath来提取数据(lxml包是运行requests包的必须)
- 首先打开用chrome打开西刺高匿ip地址,按下f12查看html
-
开始代码实现,我们这里使用xpath实现(上述方法都可以)
- 请求:requests
- 数据提取:lxml
分析table的结构我们发现第一个tr是不需要的,ip地址位于tr的第二个td中,端口port位于tr的第三个td中,ip类型位于第六个td中,下面开始代码实现

#假设msg是网页的源html
html = etree.HTML(msg)
table = html.xpath('//table[@id="ip_list"]')[0] #获取table
trs=table.xpath('//tr')[1:] #获取table下所有的tr,切片去除tr因为里面没有ip是介绍
for tr in trs:
ip = tr.xpath('td[2]/text()') # ip地址
port = tr.xpath('td[3]/text()') # 端口port
types = tr.xpath('td[6]/text()') # ip类型
print(ip, port, types) #这样就获取到每一个ip了

以上就是获取西刺代理ip的一种方法
author:小川 github:链接
交流请发邮件至w2239559319@gmail.com
来源:https://blog.csdn.net/w2239559319/article/details/100054964


