文档说明:只记录关键地方;
缘由:
想看疫苗接种趋势图,我要去哪里找呢?奈何公开的渠道没有找到!自己做一个呗
数据来源: http://www.nhc.gov.cn/xcs/xxgzbd/gzbd_index.shtml
(信息来自国家卫生健康委员会官方网站)
我要怎么得到数据呢?用什么展示呢?
搜索一番
1. 趋势图使用echarts展示
2. 数据怎么来呢?怎么快速得到数据?用什么工具可以实现?
心路历程:
1. 手工复制粘贴数据,复制粘贴了15天的数据,发现,这么不行阿,太慢了!
2. 开始之前先用 curl -v 直接请求,看请求头。接着 用程序直接请求地址,用正则匹配内容,
3. 好家伙,开始还能用,多试几次,body直接不返回信息了!(通过查看响应头,发现被 waf 拦截了);下面怎么办?
4. 搜索,waf 用什么拦截是什么原理?用了浏览器指纹、请求速度、UserAgent、浏览器headless模式、人的行为特征等等,来判断是不是机器人!
5. 通过搜索了解到各种爬虫技术:
python3 requests、
3BeautifulSoup、
scrapy、
3urllib.request、
puppeteer 、
pyppeteer 、
DevTools Protocol、
群控技术、
人力分布式爬虫、 找人力资源,看网页,人工录入,人工便宜
把渗透技术用于爬内容、 直接读取内存行不行?
录屏 OCR 解决、把并发间隔整形成正态分布试试 (看到这里,我就想起了,游戏里的物理外挂)
把社会社会工程学用于信息爬取
更高级的的做法是不爬数据,而是引导用户,让用户主动提交信息
6. 了解了那么多技术,最有效的办法--分布式人工爬虫+网联云控技术
人工便宜
因为人工便宜,按照文档操作文档就能弄,不需要技术含量的工作。
这也就能解释了 刷单、刷播放量、刷排名、刷热搜、刷投票,怎么回事! 分布式真人操作
多雇点人,人肉爬,法律上很安全 (人力不值钱)
网联云控
还有一个群控技术,这个更恐怖,把装有群控技术软件的手机发给用户,通过服务器远程操作分布在全国各地的手机,让手机干什么,就干什么 !
(例子: 手机植入后门,默默的扣费;手机自动点赞,评论。还能自动发短信)
为啥我知道,因为我是受害者, 投诉无门
(你可以看看自己的短信详单,你会发现,你的短信详单里,发送方主叫号码都不显示了,这样你也就找不到投诉对象)
我因投诉,被某些服务商拉入了黑名单,黑名单解除期限 2029年
(导致燃气公司,给我发的短信,我收不到,原因是:燃气公司的短信服务商,是我投诉过的服务商)
7. 研究了那么多,发现爬虫挺有意思的。 重点来了,请看下面:
面向牢饭编程
爬虫写的好,牢饭吃到老
反爬团队和爬虫团队可能是同一拨人(不知进攻如何防守)
爬取个人隐私身份信息是违法的
任何单位和个人不得非法制造、销售、提供或者使用网络地址自动切换系统。
中华人民共和国网络安全法
中华人民共和国反电信网络诈骗法
帮信罪:
《网络产品安全漏洞收集平台备案管理办法》
非法破坏计算机系统罪
12. 单独看几条:
第十四条 任何单位和个人不得非法制造、买卖、提供或者使用下列设备、软件:
(一)电话卡批量插入设备;
(二)具有改变主叫号码、虚拟拨号、互联网电话违规接入公用电信网络等功能的设备、软件;
(三)批量账号、网络地址自动切换系统,批量接收提供短信验证、语音验证的平台;
(四)其他用于实施电信网络诈骗等违法犯罪的设备、软件。
电信业务经营者、互联网服务提供者应当采取技术措施,及时识别、阻断前款规定的非法设备、软件接入网络,并向公安机关和相关行业主管部门报告。
《网络安全法》第二十六条,“开展网络安全认证、检测、风险评估等活动,向社会发布系统漏洞、计算机病毒、网络攻击、网络侵入等网络安全信息,应当遵守国家有关规定。”
浏览器指纹:
你的电脑所在的时区和当前时间
你的IP地址和大概的地理位置
电脑屏幕尺寸和分辨率
你在使用什么浏览器
你在使用什么插件
页面显示了多长时间
进行了多少次按键操作、鼠标点击和滚轮操作
还有其他一些我们不太了解的东西
最后来个最简单的落地方案:
为了批量获取数据,实验了很多办法,最后还是猪猪侠给的思路办法最好用
觉得简单,是因为只会这个
1. 正则+javascript脚本从单个页面把数据提取出来
2. javascript脚本、浏览器扩展、浏览器远程调试端口 控制?页面往上一页、往下一页
3. 总结: 页面注入javascript脚本,获取数据,并把数据传递到指定的地方
4. 大致方法:
方法一: 浏览器扩展就能实现全部功能
方法二: 应用程序连接浏览器运程调试端口,推荐: puppeteer pyppeteer (实现devtools-protocol的应用程序都行)
结果展示
没用啥技术,实际就是浏览器扩展完成数据获取,然后显示出来就完事了
参考文档
Headless browser detection
-
[headless-chrome]https://developers.google.com/web/updates/2017/04/headless-chrome)