php多线程抓取网页 惦愿·万象 | 那一天,人类终于回想起被虫群支配的恐惧...

优采云 发布时间: 2022-06-20 09:40

  php多线程抓取网页 惦愿·万象 | 那一天,人类终于回想起被虫群支配的恐惧...

  这是爬虫么...

  

  

  二. 教练,我想养爬虫

  我们经常发现,百度等搜索引擎并不是每次都能搜出符合我们需求的网页。这是必然的,别人家的虫虫肯定不会100%听你的,那么为什么不写一个属于自己的爬虫呢?

  除了搜索,爬虫的用途实在太多太多啦!比如,才结束不久的数学建模美赛可以用爬虫搜集数据,春运抢票时爬虫可以帮你快速搜索符合要求的车票、抢课时可以帮你占尽先机、查论文、下载小说……总之,一切和*敏*感*词*搜索信息相关的事情都可以用爬虫解决。

  C++、Java、PHP等语言都可以用来写爬虫,不过最方便的要数python了!

  Python是一个相对易于学习的高级语言,并且易于配置,对字符的处理也非常灵活,有丰富的网络抓取模块,所以常常与爬虫联系在一起。

  首先先要介绍三个概念:

  动态网页

  所谓的动态网页,是指显示的内容可以随着时间、环境或者数据库操作的结果而发生改变的。

  异步加载

  在如今人们对网页加载速度的要求越来越高的要求下,异步加载成为了许多大站点的首选。简单来说,异步加载就是把一些根据时间、请求而变化的内容,比如某宝的商品价格、评论等,采用先加载网页整体框架,后加载动态内容的方式呈现。

  API请求法

  API请求法是一种利用Python的动态网络爬虫技术

  我们只需要找到JS(即javascript,一种脚本语言,主要用于Web)请求的API(应用程序接口,此处可以想象成“软件中间商”的角色),并按照一定的要求发送带有有效参数的请求,便能获得最为整洁的数据。

  那么,Python在写爬虫方面有什么优势呢?

  1、抓取网页本身的接口

  Python是一种动态语言(指在运行时可以改变自身结构的语言),相比与其他静态编程语言,Python抓取网页文档的接口更简洁;而相比其他动态脚本语言,Python丰富的数据包提供了较为完整的访问网页文档的API。另外,抓取网页有时候需要模拟浏览器的行为,在Python里都有非常优秀的第三方包如Requests、mechanize,可以轻松帮你搞定。

  2、网页抓取后的处理

  抓取的网页通常需要处理,比如过滤HTML标签,提取文本等。Python的Beautifulsoap提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。

  一个简单的Python爬虫程序,是不是很短~~

  关于Python,小编在此就不过多介绍了了,对编程有兴趣的小伙伴们如果不满足于C语言的话,强烈建议学一下Python。当今,随着大数据和深度学习的兴起,Python、“爬虫”等领域的人才尤为紧缺。看这工资,你心动了吗?

  

  某招聘网站截图

  

  三.决战紫金之巅:爬虫与反爬虫的battle

  鲁迅曾经说过∶“读书人的事,怎么能叫偷,叫借鉴!”

  

  但是!

  当你的个人信息被恶意爬虫盗取,当你以血肉之躯和代码爬虫拼手速抢票时,牺牲又是何其惨烈!于是,就有了“反爬虫”的诞生。

  反爬虫是使用“任何”技术手段,阻止别人批量获取自己网站信息的一种方式。下面简单介绍几种反爬虫机制:

  1. 通过UA识别爬虫。

  UA是User Agent的缩写,即用户代理的缩写。说白了,就相当于一张“*敏*感*词*”,通过UA识别爬虫就好比检查*敏*感*词*明来确定*敏*感*词*嫌疑人。

  2. 设置IP访问频率,如果频率过高,弹出验证码。

  如今有注册的地方就有验证码,也许不少小伙伴们心理都暗暗吐槽过这项操作“浪费时间”。其实,验证码就是通过问一个电脑答不出来,但人类答得出来的问题来拦截爬虫,防止有人利用爬虫批量申请账号。这是一种大名鼎鼎的图灵测试。几年前,12306上震惊网友的“找白百何”图片验证码,就是铁总和黄牛爬虫斗智斗勇的结果。

  

  讲真,这验证码反爬虫不知道效果如何,但是真的反人类

  3. 识别并发情况

  对于一些大型文件,心急的爬虫们往往会通过多线程 、多进程进行爬取。相关网站通过识别这样特别的“爬行姿势”,可以当场*敏*感*词*不法爬虫。

  4. 限制单个IP/api token访问量

  对于勤勤恳恳、不知疲倦的爬虫搬运工们,网站可以限制访问次数。比如15分钟限制访问页面180次,如twitter api。这对于抓取用户公开信息的爬虫格外敏感。

  当然,反爬虫的杀伤力一般和误伤率成正比。一个性能极强的反爬虫机制,在阻拦爬虫时,也会损害正常客户的请求。因此,并不是一个反爬虫机制的拦截率越高,性价比就越好。

  欲知b站的AV变BV如何防爬虫

  详见BV1Fk4y1o7XR

  

  四. 一个爬虫的自我修养

  我们生活中几乎每天都在爬虫应用,网络爬虫作为一种技术本身是无罪的,但如果抓取别人数据时侵权了,便要面临法律制裁的风险。

  实例:

  写了一段爬虫,效果极佳,公司200多人被抓!

  

  爬虫所带来的风险主要体现在以下3个方面:

  1. 违背网站意愿(即:声明不让爬你还爬)。

  2. 爬虫干扰了网站的正常运行(即:爬虫放的太多了,挤爆了服务器)。

  3. 爬虫抓取到了受法律保护的特定类型数据或信息(即:*敏*感*词*抓取公民个人信息或者涉密信息)。

  最后,愿每个人都用技术改变世界。愿有志者做一个优雅的“爬虫”,创造更美好的未来,不要被爬虫支配了。

  本周话题

  想用爬虫爬点啥?

  

  参考文献:

  1. 通俗的讲,网络爬虫到底是什么?

  2. AV变BV可以防爬虫,那爬虫是啥?能吃么?

  3. 反爬虫机制和破解方法汇总

  4. 选择Python写网络爬虫的优势和理由

  5. 动态语言

  文编 / 王业涵 赵志昊 段雪敏 帅涵文 罗可一

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线