爬虫 爬取扇贝单词书词表

0 前言

在准备考研,背单词,然后用扇贝背的单词,在第一轮背完之后我突发奇想,能不能把这个单词书的单词导出来,然后让ai根据这些我刚背诵过的单词定制生成文章,定向的提升我的阅读能力,防止出现会背诵但是不会使用的情况。

但是这个扇贝竟然不提供直接导出整本单词书的词表的这个功能,实在是十分恼火。

最后实在没办法的我只好用尝试使用爬虫来爬,下面是我的代码。

编程小白,不足之处还请见谅。

1 快速使用

代码如果过审的话,小伙伴们应该可以在文章首部看到,想看详细过程的可以移步到第二块

这个爬虫是用node.js写的,不懂的小伙伴也不用担心,想要使用的话整体需要改动的地方还是很少的。

打开main.js文件,进行如下修改

完成这些修改之后直接执行main.js文件你的单词书就会存放在生成的output.txt文件中了。

对node.js不太熟悉的小伙伴们可以问一下ai,快速了解一下,很快就可以上手

2 研究过程

我们打开检查器,进入我们想要爬取的单词书页面中

稍微刷新一下应该就能看到一个包

解读一下它这个url,我们可以很明显的看出,这个就是我们想要的单词内容

但是当我们预览的时候,我们可以很明显的看到,这个数据并不是明文,是经过了一定的加密。
我原本以为是base64编码,但是解码之后并没有结果。所以这里的数据很明显是进行了加密。

那该如何解密啊。

不用担心,我们不会,可以上源码里找啊,它终归是要向这个链接请求数据的,我们只要找到请求数据的地方,顺藤摸瓜的就能找到解密的地方。

我们查看它的js代码,直接在里面搜索这个链接中一部分(不搜索全部的原因是这个链接可能是拼接形成的,这样大概率搜索不到)。

链接形式的js代码建议down下来再查找,这样方便一些(ps:中间可以会出现代码过长导致无法格式化代码的情况,可以下载格式化代码的插件来解决)

经过一番寻找,我们可以在main.8fdc25a4.chunk.js这个文件中找到链接的踪迹。

我们继续往下寻找这个解密的代码

他是直接调用了一个自定义的bays4.d()方法完成了解密,这显然是一个自定义的解密方法,我们再次在js代码中进行寻找。不过这次的关键字换成了bays4

经过查找,我们在head区的js代码中搜索到了这个关键字,我们把代码down下来,详细看一下这里直接从这个视图中获得的代码是不完整的,我们从下面的试视图中下载。

可以看到这部分代码很复杂,语法很奇怪,我们看不懂,可以直接丢给ai来进行分析。
ai说这是封装了一个模块,名字叫做bays4,正好就是我们想要的。

我们直接在js中导入这个模块,然后尝试着用这个方法解密我们之前得到的字符串

执行
很显然已经拿到了数据。

剩下的就是解析JSON字符串,然后选择出自己想要的字段了,循环便利获取了。这些工作都比较简单,我在这里就不过多赘述了。

到这里,我们获取扇贝单词的爬虫就完成了。

喜欢的不妨点个赞。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值