之前也写过不少关于爬虫的博客了,比如我拿一个案例来写了一篇博客,当时写的时候好好的,结果过了一段时间这个页面改版了,甚至直接下线了,那这篇案例就废掉了。 另外如果拿别人的站或者 App 来做案例的话,比较容易触犯到对方的利益,风险比较高,比如把某个站的 JavaScript 逆向方案公布出来,比如把某个 App 的逆向方案公布出来。如果此时此刻没有对方联系你的话,一个很大原因可能是规模太小了别人没注意到,但不代表以后不会。我还是选择爱护自己的羽毛,关于逆向实际网站和 App 的案例我都不会发的。在这种情况下比较理想的方案是自建案例,只用这个案例讲明白对应的知识点就可以了。 所以,为此,这段时间我也在写一些爬虫相关的案例,比如:
- 无反爬的服务端渲染网站
- 带有参数加密的 SPA 网站
- 各类形式验证码网站
- 反 WebDriver 网站
- 字体反爬等网站
- 模拟登录网站
- App 案例,如代理检测,SSL Pining 等
今天发布一下。
案例列表
本案例平台自爬数据、自建页面、自接反爬,案例稳定后永不过期,适合教学与练习。
SSR 网站
- ssr1:猫眼电影数据网站,数据通过服务端渲染,适合基本爬虫练习。
- ssr2:HTTPS 无效证书网站,适合做跳过验证 HTTPS 案例。
- ssr3:HTTP Basic Authentication 网站,适合做 HTTP 认证案例,用户名密码均为 admin。
- ssr4:每个响应增加了 5 秒延迟,适合测试慢速网站爬取或做爬取速度测试,减少本身网速干扰。
SPA 网站
- spa1:猫眼电影数据网站,数据通过 Ajax 加载,页面动态渲染,适合 Ajax 分析和动态页面渲染爬取。
- spa2:猫眼电影数据网站,数据通过 Ajax 加载,数据接口参数加密且有时间限制,适合动态页面渲染爬取或 JavaScript 逆向分析。
- spa3:猫眼电影数据网站,数据通过 Ajax 加载,无页码翻页,适合 Ajax 分析和动态页面渲染抓取。
- spa4:新闻网站索引,数据通过 Ajax 加载,无页码翻页,适合 Ajax 分析和动态页面渲染抓取以及智能页面提取分析。
- spa5:豆瓣图书网站,数据通过 Ajax 加载,有翻页,无反爬,适合大批量动态页面渲染抓取。
- spa6:电影数据网站,数据通过 Ajax 加载,数据接口参数加密且有时间限制,源码经过混淆,适合 JavaScript 逆向分析。
验证码网站
- captcha1:对接滑动拼图验证码,适合滑动拼图验证码分析处理。
- captcha2:对接图标点选验证码,适合图标点选验证码分析处理。
- captcha3:对接图文点选验证码,适合图文点选验证码分析处理。
- captcha4:对接语序分析验证码,适合语序分析验证码分析处理。
- captcha5:对接空间推理验证码,适合空间推理验证码分析处理。
- captcha6:对接九宫格识图验证码,适合九宫格识图验证码分析处理。
模拟登录网站
- login1:登录时用户名和密码经过加密处理,适合 JavaScript 逆向分析。
- login2:对接 Session + Cookies 模拟登录,适合用作 Session + Cookies 模拟登录练习。
- login3:对接 JWT 模拟登录方式,适合用作 JWT 模拟登录练习。
反爬型网站
- antispider1:WebDriver 反爬网站,检测到 WebDriver 就不显示页面。
- antispider2:对接 User-Agent 反爬,检测到常见爬虫 User-Agent 就会拒绝响应,适合用作 User-Agent 反爬练习。
- antispider3:对接文字偏移反爬,所见顺序并不一定和源码顺序一致,适合用作文字偏移反爬练习。
- antispider4:对接字体文件反爬,显示的内容并不在 HTML 内,而是隐藏在字体文件,设置了文字映射表,适合用作字体反爬练习。
- antispider5:限制 IP 访问频率为最多 1 秒一个,如果过多则会封禁 IP。
App
- app1:最基本的 App 案例,数据通过接口加载,无反爬,无任何加密参数,适合做抓包分析和请求模拟。
- app2:设置了接口请求不走系统代理,因此无法直接抓包,适合做抓包特殊处理。
- app3:对系统代理进行了检测,如果设置了代理则无法正常请求数据,适合做抓包特殊处理。
- app4:设置了 SSL Pining,如果设置了非法证书则无法正常请求数据,适合做反 SSL Pining 处理。
- app5:接口增加了加密参数,适合做抓包实时处理或可视化爬取或逆向分析。
- app6:接口增加了加密参数,同时对源码进行了混淆,适合做抓包实时处理或可视化爬取或逆向分析。
- app7:接口增加了加密参数,同时对安装包进行了加固处理,适合做抓包实时处理或可视化爬取或逆向分析。
暂且是这么多,后续还会继续增加,大家可以试着爬爬看。
汇总链接
为了方便,我专门申请了一个域名,scrape.center,意思名为「爬取中心」,似乎听起来意义上还说的过去? 案例平台首页 URL:https://scrape.center,截图如下: 大家可以点击任意一个网站来爬取练习。
案例预览
下面是一些部分案例的截图: 上面是一些案例的效果,基本上是使用 Django + Vue.js 开发的,主题使用了红色调,整个案例平台风格比较统一。另外还有一些 App 也是类似的风格,大家可以自行下载体验试试。 当然这里面最主要的还是案例的功能,比如各种加密、反爬、检测等等。
源代码
有朋友可能会问这个案例平台的源代码在哪里。 这里解释一下,由于这个案例平台以后会用于案例的讲解,并且可能会出现在课程、书本中,所以为了避免盗版和抄袭的问题,这里我选择了闭源,也算是对自己的知识成果的另一种保护吧。 不过这并不意味着爬取代码是闭源的,这块还是会开源出来的。
怎么爬
还有朋友会问,这一个个网站这么多类型和反爬,到底怎么爬呢? 其实现在针对这个练习平台一些案例讲解我已经做好了,课程也基本 OK 了,如果感兴趣大家可以点击看看。 https://t.lagou.com/cRC3RGRjSu706 谢谢大家。