Spider
handsome-h
慈不掌兵,情不立事,义不理财,善不为官。
展开
-
网络爬虫反反爬小技巧(六)奇淫技巧
前面讲到了无头浏览器、JS逆向、模拟登录、验证码,除这些之外,爬虫过程中我们可能还会遇到:请求头验证、封禁 IP、封账号等等,这里就不展开说了。不过在这里分享几个之前看到的爬虫技巧:1、有时候我们爬取某个 Web 网站,被各种反爬搞得头发掉一地,这个时候我们可以换个角度,去看看人家有没有移动端或者插件,说不定可以发现新世界;2、有时候我们可以看看目标网站的 robots.txt,看看其声明什么东西是可以爬取,什么东西是不允许被爬的,并且给什么搜索引擎爬;例如:https://www.alie原创 2020-12-15 22:35:22 · 674 阅读 · 1 评论 -
网络爬虫反反爬小技巧(五)验证码
本次就来总结总结验证码反爬的一些解决思路。验证码,也叫 CAPTCHA,取的是其英文全称 Completely Automated Public Turing test to tell Computers and Humans Apart 的首字母。一般在以下情况会出现验证码:『情况1』:比如登录和注册,这些验证码几乎是必现的,它的目的就是为了限制恶意注册、恶意爆破等行为,这也算反爬的一种手段。『情况2』:一些网站遇到访问频率过高的行为的时候,可能会直接弹出一个登录窗口,要求我们登录才能继续原创 2020-12-12 19:10:59 · 2093 阅读 · 0 评论 -
网络爬虫反反爬小技巧(四)模拟登录
在很多情况下,一些网站的页面需要登录才能看到,这个时候我们往往就需要模拟登录了。登录一般需要两个内容:用户名和密码,有的网站可能是手机号和验证码,有的是微信扫码,有的是 OAuth 验证等等,但根本上来说,都是把一些可供认证的信息提交给了服务器,然后服务器返回一个“凭证”。这个“凭证“”的生成和验证目前比较流行的实现方式有两种:第一种:Session 和 Cookies实现方式:方式一:Cookies 里面只存了 Session ID ,服务器能根据 Cookies 找到对应的 Session;原创 2020-12-11 21:46:33 · 936 阅读 · 0 评论 -
网络爬虫反反爬小技巧(三)JS 逆向
上一节说到的神器 Pyppeteer 也是有不足的地方的,最大的劣势就是相比面向接口爬虫效率很低,就算是无头的 Chromium,那也会占用相当一部分内存。另外额外维护一个浏览器的启动、关闭也是一种负担。所以对于Ajax 接口包含加密参数的问题,我们可以尝试去深挖其中的 JS 构造逻辑。这个过程中我们可能会遇到很多坑。第一个坑:接口加密一般来说会使用到各种加密和编码算法,如 Base64、Hex 编码,MD5、AES、DES、RSA 等加密。如果网站没有对 JS 代码做任何保护的话,我们可以很容易.原创 2020-12-09 21:29:27 · 1255 阅读 · 0 评论 -
网络爬虫反反爬小技巧(二)Pyppeteer
上一节说到了Selenium,它的功能的确非常强大,但很多时候我们会发现 Selenium 还是有一些不太方便的地方,比如速度太慢、对版本配置要求严苛,最麻烦是经常要更新对应的驱动,还有些网页是可以检测到是否使用了Selenium。所以在这里我们就要请出爬虫神器 「Pyppeteer」 了,虽然支持的浏览器比较单一,但在安装配置的便利性和运行效率方面都要远胜 Selenium。Pyppeteer 依赖于 Chromium 这个浏览器来运行的。有了 Pyppeteer 之后,我们就可以免去那些烦琐的环境.原创 2020-12-07 22:10:19 · 4804 阅读 · 4 评论 -
网络爬虫反反爬小技巧(一)动态页面
今天就说说常见的一种反爬手段:「动态页面」。大多数的网站页面都是经过 JS 处理后生成的结果。这些数据的来源有多种,可能是通过 Ajax 加载的,可能是包含在 HTML 文档中的,也可能是经过 JS 和特定算法计算后生成的。所以如果我们遇到这样的页面,直接利用 requests 等库来抓取原始页面,是无法获取到有效数据的。这时我们需要分析网页后台向服务端发送的 Ajax 请求,只要我们能找到 Ajax 接口的规律,就可以构造出对应的的请求,数据自然就能被轻松爬取到。但是,在很多情况下,Ajax 请求的接原创 2020-12-06 23:15:41 · 1300 阅读 · 1 评论