目录
前言
你好,我是Dr.叶子,用心写最优美的博客,弹最好听的钢琴!
项目背景
- 最近,我在整理爬虫知识点,发现大多网站主流反爬虫的手段一般是“IP封锁”,我们为了防止个人IP被禁,首先想到的就是搭建“IP代理池”作为第一道防屏蔽策略。
- 网上的一些知识太过于零散,项目代码不规范,所以亲自搭建实战项目,与大家分享!
项目简介
本项目主要基于Python搭建简单爬虫,爬取快代理网站的IP数据,经过有效性验证后,通过Pandas库储存到Excel文件,形成IP代理池,方便以后开展更多的爬虫项目,能防止个人IP被封锁。
前期准备
- 操作系统:Windows 8.1;
- 语言版本:Python 3.7;
- 开发工具:Pycharm 2.1 专业版;
- requests 库:发起请求;
- pandas 库:处理数据;
- bs4 库:解析文档;
- faker 库:自动随机生成 user-agent;
讲解1:项目搭建
1. 打开 Pycharm: 新建 python 项目
# 首先,新建项目文件夹
File > New Project > Pure Python > ... > Create
# 其次,新建 kuaidaili.py 文件
右键项目文件夹 > New > Python File > ... > Create
- 如图:
- 搭建完成,项目结构如下图:
讲解2:安装 faker 库获取user-agent
# 在终端执行
pip install faker
报错: 连接超时
解决: 更换成豆瓣镜像
pip install faker -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
如上图显示,则表示安装成功
其他库的安装同理,不再累赘
讲解3:分析 “快代理” 页面
1. 分析请求路径:
- 第 1 页
https://www.kuaidaili.com/free/inha/1/ - 第 2 页
https://www.kuaidaili.com/free/inha/2/ - 第 3 页
https://www.kuaidaili.com/free/inha/3/
… …
… … - 第 n 页
https://www.kuaidaili.com/free/inha/n/
如图:
总结: 请求路径尾部的数字代表请求的是第几页,所以只要在代码里循环改变这个数字就能可持续请求爬虫。
2. 分析前端元素:
- 按F12查看,Ctrl + Shift + C 鼠标选中数据,如图:
- 发现,数据存在于表格元素里,第 1~2 行数据如下:
<tr>
<td data-title="IP">116.231.96.146</td>
<td data-title="PORT">8118</td>
<td data-title="匿名度">高匿名</td>
<td data-title="类型">HTTP</td>
<td data-title="位置">上海市上海市 电信</td>
<td data-title="响应速度">1秒</td>
<td data-title="最后验证时间">2020-09-11 00:31:01</td>
</tr>
<tr>
<td data-title="IP">117.69.153.133</td>
<td data-title="PORT">9999</td>
<td