您的位置:首页 >文章内容

网络爬虫ip代理软件 万变ip简单维护保养网络服务

来源: 作者:admin 时间:2019-11-22 10:26:54

ip代理

\"爬取了五千多个代理IP!再也不怕网站封我IP了!\"


一、网页的检查

西刺代理网下的国内高匿部分,是一个很简单的get请求,唯一变化的就是url:

网页界面如下,很规则,很友好。下面开始写代码。


\"爬取了五千多个代理IP!再也不怕网站封我IP了!\"


\"爬取了五千多个代理IP!再也不怕网站封我IP了!\"


私信菜鸟007获取此案例源码!

# 定义一个主函数


2、拼接url

该步只需要一行代码,因此直接写在主函数中。

# 拼接url
url_new = url + str(page) + '/'


3、请求网页,获取响应。

主函数要尽量保持简洁,而把复杂的代码通过定义函数来实现,这里的第二步(即请求网页)和第三步(即获取响应)代码较多,这里通过建立函数:req_res来实现,由于urllib库已经介绍过,这里使用requests库来进行实现。代码如下:

# 构建请求函数,返回得到的响应
de


4、解析函数

获得响应之后,就要对响应进行解析了。这里也通过建立一个函数来实现。同样还是使用bs4.

代码如下:

# 构建解析函数,返回数据(以字典格式返回)
def parse_res(response,items):


5、保存数据

此处代码也较少,直接写在主函数中。

# 以CSV格式保存数据
df = pd.DataFrame(items)
df.to_csv('IP_data.csv',index=False,sep=',',encoding='utf-8-sig')


6、完整代码

这样一个爬取代理IP的完整流程代码就完成了。完整代码如下:



三、爬取结果

运行上述代码,西刺代理每页显示100条IP信息,这里以爬取前50页5000条IP信息为例。结果如下:


\"爬取了五千多个代理IP!再也不怕网站封我IP了!\"




打开保存到本地的CSV文件,如下。可见5000条信息全部爬取成功。


\"爬取了五千多个代理IP!再也不怕网站封我IP了!\"




四、IP验证

IP虽然爬取下来了,但是能不能用确是不一定的,实际上,代理IP一般都是收费的,所以免费的东西,自然没好货,不出意外的话,爬取下来的IP绝大多数是不能用的,所以需要验证下。

这里提供两种方法:

1、利用python。由于使用第二种方法,这里对第一种方法只提供想法。将爬取下来的ip使用requests库的代理方法,进行某个网页的访问,通过判断请求的响应码是否为200来判断ip是否可用(这里应该再加上个响应时间),若响应码为200则保留,否则剔除。但显然,这种方法太浪费时间。

2、利用一个叫花刺代理的软件,安装后,可直接批量检查爬取下来的IP是否可用,这里使用该软件对刚刚爬取下来的5000个IP进行检验。

首先,将刚刚爬取下来的数据通过以下代码:导出IP地址和端口信息,并保存为txt格式(该软件识别txt),代码如下。

import pandas as pd
data = pd.read_csv(r'C:\Users\zhche\Desktop\IP_data.csv',sep=',',encoding='utf-8-sig')
lists = data.values.tolist()
for list in lists:
 IP = list[0]
 port = list[4]
 
 proxy = str(IP) + ':' + str(port)
 
 with open('ip.txt','a',encoding = 'utf-8') as f:
 f.write(proxy+'
')


运行后,找到保存到本地的txt,如下:


\"爬取了五千多个代理IP!再也不怕网站封我IP了!\"




然后,将该txt文件导入到花刺代理软件中,点击“验证全部”,结果如下。


\"爬取了五千多个代理IP!再也不怕网站封我IP了!\"




没有看错,5000个IP中只有3个能用,得出一个至理——便宜没好货。

所以平时需要用数量来代替该不足,通过抓取上万个IP来寻找几个有用的。