使用python爬取有道首页做一个翻译程序

By | 2017年 2月 5日

今天想写一篇关于python爬虫的博文,正好这几天有几百个单词要翻译,而翻译软件我最常用的就是有道,去有道首页抓个包看一下,是http协议而且还是get请求这就好办了,使用时要注意是有道http://www.youdao.com/, 不是有道翻译,有道翻译采用的是post请求,这次我们使用有道首页,下面是我抓到的包分析的。

箭头里标注的就是获取到的,由于是get请求,很简单,不需要其他什么参数,只看content里的内容即可。下面开始写python程序,既然发现是http协议,那我自己有urllib2库去抓就好,我使用的是python2.7,IDE为pycharm,下面是代码,分两段函数,不喜欢把所有代码写到一起,写成函数使用的时候直接调用就行,不需要到处找,到处注释掉。

然后到你这个执行的项目的文件夹下找thefile.txt这个文件,是执行的这个程序的文件夹里。打开可以看到果然获取了全部网页内容。

但是我想做的是一个翻译程序,需要获取具体的意思,这时候就要用到正则表达式来提取关键内容了,现在开始分析我们所需要的其实就是下面这个框里的内容

其实就在网页这里,包含在一个ul下面

.....写了一会完全提取不出来这对ul里的内容,网页里的ul太多,没有明显的特征,只好弃用正则表达式,用我的另外一个神器,BeautifulSoup库,简直就是万能的提取库。没有安装的可以去官网下载,安装方式参考我下面的这篇博文。

》》》这是官网下载地址
》》》强大的BeautifulSoup库

这是我提取出来的结果,直接就找到了,而且显示的还是中文,用正则表达式一般都会把中文给编码以后再显示,因为我们需要的ul是在第二个所,以提取出去全部内容以后直接显示第二个。

现在问题又来了,如何显示li里面的内容,我想用了正则表达式,但提取出来的是编码以后的中文,只能继续使用Beautifulsoup这个神器,具体研究的过程不再详细阐述,大家看代码就可以。这样代码基本完成,但是不方便使用啊,url是可以变得,于是我弄一个变量放进去,在给一个提示框,把每次要查的单词输入即可。

最后,这次的爬取比较简单,是http和get请求,没有参数和头部什么的要写,只是简单的爬取内容,然后再去分析提取,有兴趣的可以继续研究,这个可以用于大量单词的查找,代码是没有问题的,如果有疑问可与我联系。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注