一.爬虫
简介:
网络爬虫也叫网络蜘蛛,如果把互联网比喻成一个蜘蛛网,那么蜘 蛛就是在网上爬来爬去 的蜘蛛,爬虫程序通过请求url地址,根据响 应的内容进行解析采集数据。
简单的说:就是用代码模拟人的行为,去各各网站溜达、点点按 钮、查查数据。或者把看到的数据拿下来。
作用:
通过有效的爬虫手段批量采集数据,可以降低人工成本,提高有效 数据量,给予运营/销售的数据支撑,加快产品发展。
二.爬虫守则
爬虫是利用程序进行批量爬取网上的公开信息,也就是前端显示的 数据信息。因为信息是完全公开的,所以是常规合法的!!!
合法的爬虫
-
公开的数据,没有标识不可爬取
-
不影响别人服务器
-
不影响的业务
不合法的爬虫
-
用户数据
-
部分网站、APP数据超过指定数量
-
明文规定不让爬取
-
在域名后加上
/robots.txt
查看 -
页面上标明
-
-
影响业务
-
影响服务器 类似DDOS攻击的问题
三.反爬与反反爬
反爬:有时企业不想自己的数据被别人拿到。这时就会设置反爬的 手段,来不让爬虫获取数据。
反爬虫常用一些手段:
合法检测:请求校验(useragent,referer,接口加签 ,等) 验证码:
识别文字、做题、滑动等
小黑屋:IP/用户限制请求频率,或者直接拦截 投毒:
反爬虫高境界可以不用拦截,拦截是一时的,投毒返回虚假数据,可以误导竞品决策
反反爬:破解掉反爬手段,再获取其数据。
所有的手段都能破解 吗?。。。。。
四.爬虫开发流程
基本流程
-
目标数据:想要什么数据
-
来源地址
-
结构分析
-
具体数据在哪(网站、还是APP)
-
如何展示的数据
-
-
实现构思
-
操刀编码
基本手段
-
破解请求限制
-
请求头设置,如:useragant为有效客户端
-
控制请求频率(根据实际情景)
-
IP代理
-
签名/加密参数从html/cookie/js分析
-
-
破解登录授权
-
请求带上用户cookie信息
-
-
破解验证码
-
简单的验证码可以使用识图读验证码第三方库
-
解析数据
-
HTML Dom解析
-
正则匹配,通过的正则表达式来匹配想要爬取的数据,如:有些数据不是在html 标签 里,而是在html的script 标签的js变量中
-
使用第三方库解析html dom,比较喜欢类jquery的库
-
数据字符串
-
正则匹配(根据情景使用)
-
转 JSON/XML 对象进行解析