Python网络爬虫之代理池的搭建

源码地址: GitHub

剖析:下载源码,配置Redis即可使用。

该代理池可分为四大模块:
  • 存储模块
  • 获取模块
  • 检测模块
  • 接口模块

最终文件结构:

Python网络爬虫之代理池的搭建_第1张图片

执行文件分析:

  1. api.py
    作为接口模块,即通过web访问可以得到一个可用的代理。采用轻量级Flask库进行编写。

  2. crawler.py
    作为获取模块,通过网络爬虫从免费代理网站爬取代理,这里使用Redis存储。

  3. db.py
    作为存储模块,将爬取的代理存储到Redis。

  4. error.py
    无可用代理处理文件。

  5. getter.py
    获取模块的执行文件。

  6. importer.py
    手动导入代理文件(可忽略)。

  7. scheduler.py
    代理池的调度文件。

  8. setting.py
    存储变量文件。

  9. tester.py
    作为检测模块,检测爬取的代理是否可用,爬谁以谁为测试网站,在此以百度为例。

  10. utils.py
    获取模块中,获得网页源码的执行文件,使用requests库。

  11. run.py
    代理池运行文件

  12. test.py
    通过接口模块获取代理,测试代理是否可用。

执行:

  1. 启动redis
    Python网络爬虫之代理池的搭建_第2张图片
  2. 执行spider:python3 run.py:
    Python网络爬虫之代理池的搭建_第3张图片
    检测:
    Python网络爬虫之代理池的搭建_第4张图片

接口:
Python网络爬虫之代理池的搭建_第5张图片

测试:
Python网络爬虫之代理池的搭建_第6张图片

源码地址: GitHub

参考书籍:《Python3网络爬虫开发实战》

注:2019-06-16

根据评论里的老哥出现的问题,发现最新版的Redis,可能会出现报错,原因是方法参数的变更。

需要在 db.py 做如下两个修改:

修改1:
在这里插入图片描述
修改2:
在这里插入图片描述

你可能感兴趣的:(Python,Spider)