阅读量: 760
百科介绍:网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
人话解释:人类用网络能做啥,爬虫就能干啥。
抓包工具可以理解为是中间代理人,代理客户端发送的请求到服务器
抓包工具工作流程
细节拓展
HTTP
请求方法:状态码 | 描述 |
---|---|
1xx消息 | 请求已被服务器接收,继续处理 |
2xx成功 | 请求已成功被服务器接收、理解、并接受 |
3xx重定向 | 需要后续操作才能完成这一请求 |
4xx请求错误 | 请求含有词法错误或者无法被执行 |
5xx服务器错误 | 服务器在处理某个正确请求时发生错误 |
Request Header
了解标识名称 | 描述 |
---|---|
Cookie | 让服务器知道是谁请求的 |
User-Agent | 浏览器标识信息 |
Host | 指定请求的服务器的域名和端口号 |
Content-Type | 请求的与实体对应的MIME信息 |
Origin | 表明了请求来自于哪个站点 |
Referer | 先前网页的地址,当前请求网页紧随其后,即来路 |
Response Header
了解标识名称 | 描述 |
---|---|
Location | 令客户端重定向至指定 URI |
Set-Cookie | 服务器端向客户端发送 cookie |
Content-Type | 告诉客户端实际返回的内容的内容类型 |
Expires | 包含日期/时间, 即在此时候之后,响应过期 |
代理的概念
在爬取某些网站时,我们经常会设置HTTP代理IP来避免爬虫程序被封。我们获取代理 IP 地址方式通常提取国内的知名 IP 代理商的免费代理。这些代理商一般都会提供透明代理,匿名代理,高匿代理。那么这几种代理的区别是什么?我们该如何选择呢?
代理类型:
代理类型一共能分为三种。透明代理,匿名代理,高匿代理,从安全程度来说,这三种代理类型的排序是 高匿 > 匿名 > 透明。
代理类型区别:
代理类型 | 描述 |
---|---|
透明代理 | 透明代理虽然可以直接“隐藏”客户端的 IP 地址,但是还是可以从来查到客户端的 IP 地址。 |
匿名代理 | 匿名代理能提供隐藏客户端 IP 地址的功能。使用匿名代理,服务器能知道客户端使用用了代理,当无法知道客户端真实 IP 地址。 |
高匿代理 | 高匿代理 高匿代理既能让服务器不清楚客户端是否在使用代理,也能保证服务器获取不到客户端的真实 IP 地址。 |
代理选择指标:
使用频率;其实还有一种低成本的方法,避免爬虫程序被封,那就是常见的ADSL拨号
,其稳定性高,也是一种比较有效的解决方案。
对爬虫的框架的一些认识:
语言 | 框架 |
---|---|
php | QueryList |
Python | scrapy、pyspider |
Golang | colly、pholcus |
需要知道的一些反爬虫策略:
ip
被限制爬虫的应用领域,从广义上来说,人类用网络能做啥,爬虫就能干啥。
爬虫需要考虑的事情
细节拓展
行为校验
直接凉凉氪金
的支持行为校验
直接凉凉氪金
的支持爬虫需求:某个甲方提出产品功能需要做知识产权商标检索,其需求目标是把国家知识产权局商标局中国商标网
所有公开的商标数据移植到需求产品的检索功能上,其中涉及到商标图片,哪如何通过爬虫技术手段爬取呢?
笔者这里找了一个第三方网站,也能实现数据采集:点我跳转
如何通过“爬虫”抓取商标图片
分析图片链接地址规则
链接地址:https://img.tm.cn/t/8380937.jpg
分析规则
使用软件:完美验证码识别系统
是否收费:免费
支持平台:Windows
功能简介:
打码平台:超级鹰
字母+数字验证码,收费价格:¥0.01 /次
算法识别图形验证码流程
字符类验证码
处理效果流程
滑块类验证码
解决方案
通过浏览器中的网页调试器及配合Fd工具分析接口的交互数据方式
爬虫技术手段
看看这个
做反爬的好处
若是自己辛辛苦苦写的(商业、核心)业务代码,被其他竞争公司拿去用了或者破解了,想想都心塞。
可以从下图对比中看出两种区别:
混淆代码的好处
JavaScript Obfuscator 一个免费和高效的JavaScript混淆器。让你的代码更难复制,更开防止别人窃取你的成果。
Uglify 是一款JS代码处理工具,提供了压缩,混淆和代码规范化等功能。
爬虫
工程师(采集)没有未来,数据工程师(采集、分析、预测)有未来。反爬虫
场景中,没有绝对安全的保护机制,我们能做好的其实就是提高攻击者的成本。反爬虫
未来发展方向,个人认为更多的不是依赖于算法识别而是「机器学习」识别爬虫。