python实战案例:爬取爬虫代理IP

659 阅读2分钟

这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战

实战案例内容

现如今的网站,反爬虫策略越来越厉害,我之前在使用爬虫爬取需要的数据时,本机ip十分容易被封掉,使数据爬取受阻,后来我就发现了一个国内高匿名免费HTTP代理IP网站,网站网址见以下连接:国内高匿名免费HTTP代理IP,其中有非常多的公开免费的匿名IP,从而就有了今天这个爬取爬虫代理IP的实战案例。为了之后能爬取数据能够更加便利的使用这些IP,我从这个网址爬取了最新的150个高匿名代理IP,并存储到了数据库中,每次我要获取最新的ip存储到数据时,只要运行这个脚本就可以了。

image.png

整体思路

数据库部分

因为我使用python爬虫爬取数据,所以我使用了python的第三方库sqlite3来创建数据库进行ip数据存储。

连接数据库

使用connect()方法连接数据库,代码如下:

image.png

判断表格是否为空

首先判断表格是否存在,如果不存在就新建表格,并返回True,否则就清空表格记录并返回False,实现的函数方法(输入数据库对象和表格名称)和代码如下:

image.png

image.png

插入数据

将爬虫爬取到的数据实时写入到数据库表格中,全部插入完成后,关闭数据库连接。

爬虫部分

请求头准备

  • 代理IP(proxies)初始化:从上文的免费HTTP代理IP网站中选择一个有效ip进行初始化
  • 请求头(headers)初始化:需初始化的内容有cookies、connection、user-agent

爬取数据

使用python的request库爬取数据,同时使用python中time库的sleep()方法时程序暂停5s在继续执行,防止访问网站在短时间内过于频繁,然后使用正则表达式匹配网页中的对应的数据,再将数据插入到数据库表格中。代码如下:

image.png

数据爬取结果

最终爬取到的代理IP数据见下图:

image.png