Python 爬虫小程序:自动查询英语单词释义和音标

2024-11-23
来源:网络整理

小编在学习英语的时候,遇到不认识的英语单词,就会用百度翻译来查找单词的释义和音标,并播放单词的发音。为了方便复习和记忆,单词的定义和音标需要以复制粘贴的形式保存在本地。

这个过程非常繁琐,所以小编就想是否可以写一个小爬虫程序来自动完成这些任务呢?

为了完成这样一个小程序,我们需要完成以下步骤:

1.输入一个单词并查看它的定义和音标

2.下载音频并播放发音

3.保存到本地文件并自动调整格式

4.打包成可执行的exe程序

在这篇文章中,我们将解释如何完成第一步:输入单词并查找单词的定义和注音。

打开百度翻译,确定需要抓取的信息。

我们首先打开目标网页,即百度翻译:

打开后,我们输入“”一词,点击网页上的“翻译”按钮进行查询,就会出现如下图所示的内容。红框内的词义和音标就是我们需要捕获的信息。

同时,我们希望将单词的定义和音标保存在下图所示的结构中。

使用开发者工具()进行抓包分析

以浏览器为例,我们可以通过以下方式打开开发者工具:

1. 右键单击​​网页空白处,然后左键单击“检查”

2. Ctrl + + I

3.F12

打开后,点击“”选项,如下图:

根据提示,我们按“F5”刷新网页,网页重新加载。在“”面板中,我们可以看到服务器发送过来的数据,包括HTML文件、JS文件、图片等。

打开粘贴功能_小程序开发没有粘贴按钮_粘贴选项按钮

我们点击“”,右侧栏中会出现“”、“”、“”等选项。点击“”,会出现网页“”对应的网页源代码。

当我们点击“.png”,再点击“”,就会出现百度翻译的图片,也就是网页左上角的标志。

这些从百度翻译所在服务器传过来的数据和文件,经过浏览器的处理和渲染,最终呈现出我们在浏览器中看到的网页界面。

找到目标URL并发送请求

我们的目标是找到服务器传过来的包含词义和音标的URL地址,然后用它来请求URL地址来获取目标内容。

有时,浏览器传输过来的数据太多、太复杂,我们无法快速找到目标内容。这是一个熟能生巧的过程。您尝试的次数越多,找到目标 URL 的速度就越快。

下面是小编常用的一个方法:

1、点击开发者工具左上角的清理按钮,删除所有原始数据,然后点击网页上的“翻译”按钮。网页内容将被部分加载,新传递的数据将出现在“”中。

2.传输的数据类型较多,我们可以使用开发者工具中的过滤功能。一般来说,目标内容在“XHR”或“Doc”中。我们首先点击“XHR”选项。具体操作如下图所示。

3、我们点击“”,然后点击“”选项就可以看到具体的内容了。我们依次点击:“”——“”——“”——“0”——“”——“0”——“”,这样就可以看到词义和音标了。

4. 然后单击“”。在“”栏中,可以看到我们请求的URL地址和请求方式。我们将使用“POST”请求方法请求“”。

5、请求头信息会出现在“ ”中。我们在请求URL时必须带上这些信息,否则不会返回目标内容。

6、在“表单数据”栏中,可以看到一行带有“:”的行,说明我们要查询的单词是“”。所以如果我们想要查询不同的单词,只需要改变这一行即可。

7、代码如下(由于篇幅限制,省略了一些不重要的代码,我们将附上完整的代码):

小程序开发没有粘贴按钮_粘贴选项按钮_打开粘贴功能

加载JS代码获取签名

我们最终实现的是能够查询不同的单词。当我们查询其他单词时,我们发现符号随着查询单词的变化而变化。以查询“”和“”为例,我们发现符号是“.”。和 ”。”分别。

每个单词对应一个符号,该符号是根据单词本身使用 JS 代码生成的。这是一种反爬虫的方法。如果没有标志,很多爬虫很容易抓取到这些信息。我们需要从网页加载的JS代码中找出生成标志的代码。这又是一项复杂而艰巨的任务。幸运的是,热心网友在网上找到了这段JS代码,我们直接copy即可。

我们使用一个模块“”专门执行JS代码来生成符号。代码如下:

将两段代码合并,然后发送请求,得到如下数据。这是一个字符串,实际上是JSON格式的数据。我们可以使用内置模块“json”来处理它。

处理 JSON 格式的数据

这里直接粘贴代码,代码如下。

打开“”列表,我们可以看到字符串已经处理成功,并且词义和音标都以“列表”的形式存储起来。

至此,我们已经成功完成了第一步:输入单词并查询单词的释义和注音。

人文社会科学观察员

分享