Python爬虫-代理池-爬取代理入库并测试代理可用性
目的:建立自己的代理池。可以添加新的代理网站爬虫,可以测试代理对某一网址的适用性,可以提供获取代理的 API。
整个流程:爬取代理 ----> 将代理存入数据库并设置分数 ----> 从数据库取出代理并检测 ----> 根据响应结果对代理分数进行处理 ----> 从 API 取出高分代理 ----> 用高分代理爬取目标网站
分析:
1、爬虫类的编写:负责抓取代理并返回。
- 因为不同的代理网站的网页结构不同,所以需要单独为每一个代理网页写爬虫。
- 调用每个爬取方法,依次返回结果。
2、数据库类的编写:负责代理的存取与代理分数的设置。
- 判断待存入代理是否存在,不存在便存入数据库。
- 将代理存入数据库,首次入库的代理分数设置为100。
- 代理测试失败时,代理分数做相应的扣除,分数低于指定值时从数据库中移除。代理测试成功时,将代理分数重新设置为100。
- 需要使用代理时,从数据库中随机取出高分代理。
3、保存类的编写:负责执行爬取,并将结果存入数据库。
- 判断数据库是否已经达到满足值,根据返回值决定是否执行爬取。
- 将爬取得到的结果存入数据库
4、测试代理类的编写:负责测试代理对目标网站的可用性。
- 用每一个代理爬取目标网站,根据响应状态码对代理分数进行设置。
5、提取代理 API 的编写:负责提供获取代理信息的接口。
具体实现:
1、Crawler:
2、RedisClient:
3、Saver:
4、Tester:
5、API:
总结:这里我只爬取了两个代理网站的代理,西刺和快代理,可以在 Crawler 类中添加名称以 crwal_ 开始的方法来扩充。详细代码我放到 Github上了,https://github.com/ysl125963/proxy-pool
转载于:https://www.cnblogs.com/yangshaolun/p/10932846.html
Python爬虫-代理池-爬取代理入库并测试代理可用性相关推荐
- [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(四) —— 应对反爬技术(选取 User-Agent、添加 IP代理池以及Cookies池 )
上一篇:[Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(三) -- 数据的持久化--使用MongoDB存储爬取的数据 最近项目有些忙,很多需求紧急上线,所以一直没能完善< 使用 ...
- 爬虫实战(一)—利用requests、mongo、redis代理池爬取英雄联盟opgg实时英雄数据
概述 可关注微信订阅号 loak 查看实际效果. 代码已托管github,地址为:https://github.com/luozhengszj/LOLGokSpider 包括了项目的所有代码. 此篇文 ...
- [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(三) —— 数据的持久化——使用MongoDB存储爬取的数据
上一篇:[Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(二) -- 编写一个基本的 Spider 爬取微博用户信息 在上一篇博客中,我们已经新建了一个爬虫应用,并简单实现了爬取一位微 ...
- [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(二) —— 编写一个基本的 Spider 爬取微博用户信息
上一篇:[Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(一) -- 新建爬虫项目 在上一篇我们新建了一个 sina_scrapy 的项目,这一节我们开始正式编写爬虫的代码. 选择目标 ...
- Python爬虫---影评的爬取
Python爬虫-影评的爬取 介绍:爬虫练手,使用Requests库进行豆瓣影评的爬虫,做成词云图,写文章主要做一些问题解决的记录. 运行环境:python 3.8, Pycharm 关于在豆瓣爬取影 ...
- 【Python爬虫】从零开始爬取Sci-Hub上的论文(串行爬取)
[Python爬虫]从零开始爬取Sci-Hub上的论文(串行爬取) 维护日志 项目简介 步骤与实践 STEP1 获取目标内容的列表 STEP2 利用开发者工具进行网页调研 2.1 提取文章链接和分页链 ...
- python爬虫 requests+bs4爬取猫眼电影 傻瓜版教程
python爬虫 requests+bs4爬取猫眼电影 傻瓜版教程 前言 一丶整体思路 二丶遇到的问题 三丶分析URL 四丶解析页面 五丶写入文件 六丶完整代码 七丶最后 前言 大家好我是墨绿 头顶总 ...
- python爬虫:Selenium爬取B站视频标题、播放量、发布时间
上次尝试了利用Ajax机制爬取B站视频播放量等数据(链接在下方),但是发现响应的JSON数据中没有发布时间的数据,这次决定用Selenium试一下. python爬虫:Ajax爬取B站视频标题.播放量 ...
- python 爬虫实例 电影-Python爬虫教程-17-ajax爬取实例(豆瓣电影)
Python爬虫教程-17-ajax爬取实例(豆瓣电影) ajax: 简单的说,就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: ...
- Python爬虫系列之爬取微信公众号新闻数据
Python爬虫系列之爬取微信公众号新闻数据 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发 > 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学习交流 ...
最新文章
- 11岁少女叫板支付宝!会写代码的孩子,到底多可怕?
- coreldraw绘制兔子视频_53个CAD市政工程设计视频教程+62个图纸,3天学会制图!
- 分分钟带你欣赏ES6语法糖
- STL 之for_each,transform
- rhel系统启动过程_Linux启动过程详解
- HTML label控件
- python写web自动化_jenkins+selenium+python实现web自动化测试
- xml文件中““符号报错,无法识别
- oracle 修改字段长度_Oracle字段长度引起的思考length()和lengthb()
- linux configure使用方法
- 《黑客X档案》2006年-2012年全集(PDF格式)
- PLSQL 安装教程
- Java +Vue 实现滑动拼图验证码(Java篇 )
- OpenSIPS实战(一):OpenSIPS使用简介
- 传递VB数组给DLL中的函数
- 北京交通大学c语言程序设计,北京交通大学C语言综合程序设计(黄宇班).doc
- python通过ssh链接sql(python通过阿里跳板机链接阿里数据库)
- <数据库概论> 如何把E-R图(概念模型)转换为关系模式(逻辑模型)
- ADB interface 驱动下载,以及使用,Because an app is obscuring a permission request settings can’t verify your
- 国内外常用公共NTP网络时间同步服务器地址
热门文章
- html5通过api调数据库,使用HTML5数据库API [关闭](Using HTML5 Database API [closed])
- 树莓派4开机黑屏_树莓派4降价啦,2Gb内存的树莓派4降至35美元
- 和gdi绘图效率比较_堪称效率神器!5款日常插件分享,错过哪一个都无比遗憾...
- Java语言之数组_java语言之数组-----选择排序
- 王爽汇编习题 : 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 ___ 到 ____。
- Asp.Net就业课之案例实践第二次课
- java求完数(完全数 完美数)
- android 按键会触发ontouch吗?_这次,我把Android事件分发机制翻了个遍
- Linux通过第三方应用提权实战总结
- openresty配置部署