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