爬虫博客推荐及个人笔记(闲聊时刻)

https://blog.csdn.net/qiulin_wu/article/details/104774594 - 一入爬虫深似海,反爬技术你知多少?(这篇博客幽默风趣,大家可以看一下~)


笔记:之前也做过基于网络爬虫的数据分析系统。也写过爬虫,在做数据分析系统的时候,主要的爬虫部分开发不属于我开发。但我也知道爬虫的原理及实现。

编写爬虫无非就是四步

(1)设置代理。这个是把自己伪装。

爬虫基础之代理的基本原理 - https://blog.csdn.net/miner_zhu/article/details/81780309

代理实际上指的就是代理服务器,英文叫作proxy server,它的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站。在我们正常请求一个网站时,是发送了请求给Web服务器,Web服务器把响应传回给我们。如果设置了代理服务器,实际上就是在本机和服务器之间搭建了一个桥,此时本机不是直接向Web服务器发起请求,而是向代理服务器发出请求,请求会发送给代理服务器,然后由代理服务器再发送给Web服务器,接着由代理服务器再把Web服务器返回的响应转发给本机。这样我们同样可以正常访问网页,但这个过程中Web服务器识别出的真实IP就不再是我们本机的IP了,就成功实现了IP伪装,这就是代理的基本原理。

那么,代理有什么作用呢?我们可以简单列举如下。

  • 突破自身IP访问限制,访问一些平时不能访问的站点。(扩展:nginx反向代理,暴露服务器测试端口到本地)
  • 访问一些单位或团体内部资源:比如使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。
  • 提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。
  • 隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击。对于爬虫来说,我们用代理就是为了隐藏自身IP,防止自身的IP被封锁。

(2)抓取相关网页。。(这里不作解释,调用一个方法的事)

(3)正则匹配。(通过正则表达式获取有用的数据)

(4)存入数据库或文档(txt,excel等)。


但是很多网站也会有相关反爬虫措施:

例如通过监控某个ip的流量,这个ip对网站访问大,频繁,也就是异于平常。可以通过封禁ip。也会有人问了,如果我先采用自己的本地ip爬取网站信息被封了,怎么办?使用代理服务器就行了。就算网站封了你的本地ip,但你通过代理服务器进行中转的话,也对你本地ip进行了伪装,他依然只能识别到代理服务器ip,而不知道你的真正ip。。也许有人问,使代理服务器的ip被封了怎么办?这个情况在开发的过程中也遇到过,,因为抓取大量的网站数据,别人检测异常把代理服务器ip封了(一般爬取1000行数据都网站都不会封的,但你爬取几十w行数据就会出问题了,因为流量太大了),这个时候可以使用ip池,就是建个里面有100多个ip的池子(看你有多少代理服务器的ip)。这个网上淘宝也有相关服务。当你ip被封了,就换ip。或者是用某个ip爬取1000行数据了,也换ip。主要是靠你测试网站封禁ip的极限(流量,访问间隔等等)来设置你更换ip的频率和条件。


还有如下反爬常用技术:

验证码反爬:这个反爬曾经可能是可行的,随着技术的更新换代,带来了机器学习,还有OCR。很多图片验证码很多都能搞定!更何况在这个资本主义的时代,打码平台!了解一下~~(这个就不用说了,基本各大网站都用惯了,通过验证码,你要手动验证,当使用爬虫更换ip退出账号的时候,就需要手动设置验证码,,对于爬取小量数据还可以,对于大规模爬取数据,使用这个,,不断验证。。要了老命)

CSS加密+SVG映射反爬:前端女大佬上线!跟我比知识面?我们都知道从请求到数据响应展示不仅仅是后端的事。前端要处理大量的事,比如用CSS做一些渲染。另外JS可以玩出大量招式与花样,一周一个Feature,365天里面基本都不会带重样的。就问你爬虫老哥!你遭得住嘛?(css加密,对前端页面css加密,然爬虫工程师无非根据前端css代母或js代码,编写爬虫,把里面的资源地址都隐藏起来,,这爬虫就爬不到深度内容了。。还有vue的反爬虫措施比传统的框架如bootstrap好不少,但也有解决方法,就是通过解释页面api,获取api的返回数据。一般是json数据,,)

指纹反爬:今时今日出现了一种新的方法替代cookie可以来跟踪用户。在这两年中,许多网站和跟踪软件都开始利用HTML5指纹。如果单单对于canvas指纹识别的话。可以利用它的原理实现破解,可以修改浏览器设置、更换浏览器、更换浏览器不同版本等系统环境,让他失效。但是一般指纹识别会附加很多其他识别因素。再者!这个东西有一个缺陷就是无法验证它的合法性。因其冲突概率非常高!因此,看似“高级”的操作有时候也不一定能实用哦。(指纹无非就是根据你浏览器的基本信息来对你进行识别,更换浏览器版本、设置等可以解决)
 

 

你可能感兴趣的:(爬虫与反爬虫)