我们在使用爬虫的时候,会对代理ip有一定程度的需求。今天爬取的这个免费代理网站不是大家已经爬烂的西刺和66等代理网站,是我无意间发现的宝藏网站~

这个网站还是有一点小意思的。

注意到没有,这里的ip地址被换成了图片,而这个图片长得似乎和验证码非常相似。定位ip地址元素发现,确实是图片,并且是base64编码的形式。

这样我们就有了整体的思路,首先爬取网页上图片的base64编码,将编码解码保存为图片,接着利用OCR进行识别,将图片中的ip提取。

爬取网页

网页上的这些元素爬取还是非常容易的,通过page参数控制翻页,其他内容例如端口号,匿名度等代理的信息可以利用xpath或者其他方式来解析网页得到。

当我们得到图片的base64之后,需要将编码解码并保存为图片。

def ip_img(img_base64,i):    img_data=base64.b64decode(img_base64)with open ('ip/{}.jpg'.format(i),'wb') as f:        f.write(img_data)

OCR识别

我们将这些ip地址的图片统一保存在ip文件夹内,来对每一张图片进行OCR识别,识别的套路很简单,和知网的验证码的方式相同,我们先把图片转换为灰度图片,再进行简单的二值化处理,得到新图片效果如下所示。

但是使用tesserocr之后发现,这个黑白的二值图片依然不能识别,我猜想是因为图片大小的问题,于是我利用resize将图片的长宽均增至三倍,这样识别得到的结果便有模有样了。

def ocr_ip(img):    image=Image.open(img)    image=image.resize((450,60))    image=image.convert('L')    threshold=127    table=[]for i in range(256):if i            table.append(0)else:            table.append(1)    image=image.point(table,'1')    result=tesserocr.image_to_text(image).replace('§','5').replace('$','8').replace('L','1').replace('i','1').replace(',','')return result.replace('\n','')

上面还是进行了一些小小的处理,例如tesserocr会把“5”识别为“§”,把“1”识别为“L”等等,因此我使用replace做了结果的部分内容替换。

这样,我们就可以获取这样一些免费的代理IP,再验证有效性之后便可投入使用啦~

——END——

推荐阅读

用Python来掷个色子~

用Python获取可能是全网最全的杰尼龟表情包(第三弹)

ip在线代理网页联合早报_一次免费代理ip的爬取实战相关推荐

  1. ip在线代理联合早报_我所资深代理人马俪雯线上参加”中国医药设备工程协会年会”...

    我所资深欧洲,英国,爱尔兰专利代理人马俪雯(Marie Walsh)应邀参加了11月26日在上海举办的中国医药设备工程协会年会的线上分享.中国医药设备工程协会( CPAPE)是跨行业.跨部门的全国性社 ...

  2. python爬虫公众号_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  3. python微信爬取教程_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  4. python微信公众号推送_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  5. python爬取公交车站数据_Python爬虫实例_城市公交网络站点数据的爬取方法

    爬取的站点:http://beijing.8684.cn/ (1)环境配置,直接上代码: # -*- coding: utf-8 -*- import requests ##导入requests fr ...

  6. 高可用免费代理ip爬取实战

    我们在使用爬虫的时候,会对代理ip有一定程度的需求.今天爬取的这个免费代理网站不是大家已经爬烂的西刺和66等代理网站,是我无意间发现的~ 这个网站还是有一点意思的. 注意到没有,这里的ip地址被换成了 ...

  7. python获取网页数据对电脑性能_【Python】网页数据爬取实战

    由于网页结构跟之前有变化,还不是很熟悉.代码待完善,问题记录: 腾讯新闻二级网页内容爬取有问题. 链家网站头文件没有用到. 爬取一条腾讯视频的header内容,存入txt.要求: 包含网页链接 包含t ...

  8. python爬取网页文本_手把手教你如何用Python爬取网站文本信息

    提取网页源代码--Requests 工具包 在我们提取网络信息之前,我们必须将网页的源代码进行提取,Requests工具包现在可以说是最好用和最普及的静态网页爬虫工具,它是由大神Kenneth Rei ...

  9. python怎样获得手机软件app数据_如何进行手机APP的数据爬取?

    平时我们的爬虫多是针对网页的,但是随着手机端APP应用数量的增多,相应的爬取需求也就越来越多,因此手机端APP的数据爬取对于一名爬虫工程师来说是一项必备的技能.我们知道,网页爬取的时候我经常使用F12 ...

最新文章

  1. 未转变者rust服务器推荐,如果steam只留一个游戏,你会选择吃鸡还是CSGO
  2. 专利分析与申请(1):法国汤姆森公司关于在有损编码器上扩展无损编码器的专利分析...
  3. 应用指定显示到副屏_彩易达LED显示屏在税务局的应用-彩易达,LED显示屏,在税务局的应用-LED屏行业...
  4. scrapy需要的xpath知识点
  5. 全国战争linux添加eth0,linux服务器双线路接入配置
  6. CAS和Synchronized知识
  7. 进入实现类快捷键_实测30个自带快捷键,原来键盘也这么好用!
  8. 模板 - 数论 - (新)
  9. wxpython中文教程_wxPython中文教程 简单入门加实例
  10. 各大物联网平台对比之百度IoT云平台
  11. 关于动态生成data组件
  12. Egret引擎基础教程II(EUI基础使用教程)
  13. java 环绕通知_SpringAOP四种通知类型+环绕通知
  14. 06.ESP8266驱动OLED屏
  15. IOT语义互操作性之本体论
  16. 联想微型计算机m910q6,一台比较完美的黑苹果小主机 联想M910Q折腾记 opencore EFI分享...
  17. String 转表情, Swift 与 OC 中调用
  18. 算法设计 (分治法应用实验报告)基于分治法的合并排序、快速排序、最近对问题
  19. 关于USB Type A/B/C的区别和基本知识
  20. 【问】SQL 2012中如何还原数据库?

热门文章

  1. 爬虫--BeautifulSoup使用
  2. 33.JAVA编程思想——JAVA IO File类
  3. 02 typedef
  4. activiti-explorer 启动报错 Error creating bean with name 'demoDataConfiguration'
  5. php 扩展 suhosin 配置不当引发的报错及其解决方法
  6. 【甘道夫】CDH5.2的Maven依赖
  7. maven 构建 springmvc + spring security 权限控制示例
  8. Android的移动存储解决方案“.NET研究”之SharedPreferences
  9. error40;无法打开到SQL Server的连接,设置了Tcp/IP等也不能连接的问题
  10. 自省的力量-我看《走出软件作坊》