Python之网络爬虫(验证码、代理IP、防反爬策略、封装一个抓取页面的函数)

一、使用tesseract做OCR验证码识别

1、cookie, session的作用
用户曾经访问过个这个网站,我们需要在HTTP协议之外用一些额外的信息和技术来标识这个用户曾经来过为了让用户体验更好;所以我们的爬虫程序可以巧妙的利用这个漏洞来达到登录获取信息的效果。

2、安装tesseract
pip install pytesseract

3、测试tesseract
1)from pytesseract import *
2)然后,在captchaTest. py程序中有一张验证码的图片
3)去噪音,找出验证码的色彩;
4)背景色与前景色的区分;
5)提取出一个个字符;
6)使用余弦相似度来计算两个字符之间的相似,
https: L /blog. csdn. net /whi terbear/article/details .
7)得到当前字符最大概率匹配的样本集中的字

4、注意
验证码这一关是涉及机器学习方面的内容,里面的水很深,因此处理验证码时一定要考虑好时间成本。如果图像识别技术实在搞不定验证码这一关,可以选择使用打码平台,最终都无法解决,那也只能手动输入了。

5、打码平台运作的方式
1)首先在打码平台注册账号,获取到合法的Key, ID等信息;
2)使用这些Key, ID去调对方的API:读取文件成字节流,做一次Base64转码,去调API接口,返回结果;
3))到结果,进行下一-步操作;如果出错,根据返回结果来判断如果排错。

二、代理服务器设置

1、代理服务器:借助别人的手来完成访问,将自己的ip地址给伪装起来,爬虫时不会被服务器发现恶意访问

2、设置代理服务器IP:打开控制面板的Internet选项,点连接,设置,代理服务器,输入对应的地址和端口号(port)

3、IP和MAC地址的区别
HTTP数据包在传递过程,源地址和目标地址是不变的。填写的是IP地址,发包过程中经历各个路由器使用的是MAC地址,不同的路由器就有不同的物理地址,即MAC地址,因此这个MAC地址是不断变化的。

4、代理服务器使用方法

# 使用代理服务器来访问:ProxyHandler需要接受的是一个字典
import urllib.request

def use_http_proxy(proxy_addr, url):
    # 构造代理服务区的handler
    proxyH = urllib.request.ProxyHandler({
   "https":proxy_addr})
    #创建一个Http 的opener
    opener = urllib.request.build_opener(proxyH,
                                urllib.request.HTTPHandler)
    # 把构造出来的opener载入到全局的urllib里
    urllib.request.install_opener(opener)
    # 发起Http请求:设置超时为6秒(超过6秒没有反应就报错)
    res = urllib.request.urlopen(url,timeout=6)
    # 读取信息
    data 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸿蒙Next

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值