这几天开始背诵考研单词,在网上查找英语考研必备词汇,发现都是长这样的:

每一页的点击太费时费力了。因此萌生了为什么不能用爬虫把单词爬下来保存在本地呢?说干咱就干。首先点开搜索中的某个网页,分析网页的结构,找到其中的规律。例如,我找的是跨考考研的网站:

这是该网站http://www.kuakao.com/english/ch/39183.html的英语词汇链接起始.

安全起见,我们先查看网站的robots协议,可以看到并没有限制我们爬取词汇页面。

接下来使用chrome浏览器,右键点击view page source(ctrl-U),也可以选择inspect(ctrl+shift+I),找到对应的词汇部分,

分析发现,词汇部分开头是用

开始的。接下来就开始我们的coding过程了。我们程序使用的是python3, 系统是ubuntu,IDE选择的是pycharm,主要是pycharm可以在线调试,简单方便。
先实现爬取网页的过程:
import requests
try:base_url = 'http://www.kuakao.com/english/ch/39183.html'r = requests.get(base_url)print(r.content)
except Exception as e:print(e)

写完以后运行,从结果来看,我们成功获取到了该网页的内容,但是内容不够友好,会有一些xb9\xe4\xba\x8e这种字符,并没有显示中文内容,这里修改一下编码格式,增加一行code:

r.encoding = r.apparent_encoding,

然后增加模拟浏览器登陆,另外从打印结果来看,网页内容没有实现自动排版,这里我们用Beautifulsoup库来优化解析网页内容,优化完的code如下:

import requests
from bs4 import BeautifulSoup
try:base_url = 'http://www.kuakao.com/english/ch/39183.html'headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36'}r = requests.get(base_url, headers=headers)r.encoding = r.apparent_encodingsoup = BeautifulSoup(r.content, 'lxml')print(soup)
except Exception as e:print(e)

尝试运行,从返回的结果来看,网页内容能够正常显示中文字符,也自动进行了排版。

接下来我们需要提取网页中词汇的部分,使用Beautifulsoupfind方法查找class=artTxtdiv,返回的结果中,我们发现除了英文词汇还有其余不想要的内容,这是由于find方法会按照我们的要求从开始查找, 找到结果以及后面的所有内容都会包含。这需要我们利用code来进行筛选,将尾巴去掉,只保留词汇部分。Beautifulsoup具体的使用方法在这里不做过多的概述了,放两个链接给大家:

BeautifulSoup官方文档中文版
静觅的博客关于BeautifulSoup用法

学习爬虫迟早要学Beautifulsoup和正则表达式的,建议大概了解一下用法。

通过Beautifulsoup解析网页内容,拿到词汇以后,我们需要将其保存在文件中。保存文件的code如下:

with open('word.txt', 'w') as f:f.write(word)f.write('\n')

文章开头的时候我们只是分析了第一页的内容,翻阅下去以后发现一共有66页内容,因此我们将url拆分一下:

 base_url = 'http://www.kuakao.com/english/ch/39' + str(183 + page) + '.html'

改成通过遍历方式,可以抓取到每个网页的结构内容。

将code按照功能细分一下,总共两个方法就可以实现完整步骤了:
1. get_englist_word()
2. write_word_to_file(word_list)

最后为了能够让我们在运行爬虫程序的时候有所反馈,我增加了进度条的功能,使用了tqdm第三方库,效果如下:

最终文件中效果图是长这样的:[图片上传失败…(image-c1ea62-1528535865293)]

到此为止,我们的程序就写完了。最后总结一下,写爬虫的code的时间其实很少,主要是对于要爬取内容的解析和清洗工作占用了大部分时间,以及后期的优化工作,这样也能锻炼我们分析解决问题的能力。

附录:源代码

由于本人自身能力有限,code还有很多有待改进之处,欢迎大家指点建议,也希望大家能多多包涵。

如果大家喜欢这篇文章,还请大家点个赞,算是对我的鼓励,谢谢!

python爬虫爬取英文考研词汇相关推荐

  1. python爬虫提取人名_python爬虫—爬取英文名以及正则表达式的介绍

    python爬虫-爬取英文名以及正则表达式的介绍 爬取英文名: 一. 爬虫模块详细设计 (1)整体思路 对于本次爬取英文名数据的爬虫实现,我的思路是先将A-Z所有英文名的连接爬取出来,保存在一个csv ...

  2. 四小时学python爬虫爬取信息系列(第一天)

    四小时学python爬虫爬取信息系列(第一天)(全是干货) 1.安装requests库(可以在电脑python,我是进入anaconda我建的虚拟环境) anaconda虚拟环境法流程: conda ...

  3. 用Python爬虫爬取自己要的文章

    用Python爬虫爬取自己要的文章 在CSDN上有很多精彩的技术博客文章,我们可以把它爬取下来,保存在本地磁盘,可以很方便以后阅读和学习,现在我们就用python编写一段爬虫代码,来实现这个目的. 我 ...

  4. Python爬虫-爬取wallhaven壁纸

    Python爬虫-爬取wallhaven壁纸 前言 可行性分析 功能介绍 效果展示 基本思路 1.获取每页(1页24张)壁纸的url 2.获取每张壁纸缩略图的url 3.获取壁纸原图下载的url 4. ...

  5. python爬虫爬取微信公众号小程序信息

    python爬虫爬取微信公众号小程序信息 爬取内容 某汽车维修信息提供的维修店名称,地点以及电话(手机)号码 爬取步骤 啥也别管,先抓包看看,在这里,博主使用的抓包软件是charles 抓包:将网络传 ...

  6. python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(二)

    上一章: python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(一.爬虫思路及代码) 第三步:数据清洗 清洗数据很简单,就是数据太乱的话,就得花些时间,所以一定要有一个好的方法,才能避免在清洗数据 ...

  7. 在当当买了python怎么下载源代码-python爬虫爬取当当网

    [实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...

  8. python爬虫代码实例-Python爬虫爬取百度搜索内容代码实例

    这篇文章主要介绍了Python爬虫爬取百度搜索内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 搜索引擎用的很频繁,现在利用Python爬 ...

  9. python爬虫数据分析可以做什么-python爬虫爬取的数据可以做什么

    在Python中连接到多播服务器问题,怎么解决你把redirect关闭就可以了.在send时,加上参数allow_redirects=False 通常每个浏览器都会设置redirect的次数.如果re ...

  10. python爬虫爬取csdn博客专家所有博客内容

    python爬虫爬取csdn博客专家所有博客内容: 全部过程采取自动识别与抓取,抓取结果是将一个博主的所有 文章存放在以其名字命名的文件内,代码如下 #coding:utf-8import urlli ...

最新文章

  1. 自定义InputFormat案例
  2. django的模板系统
  3. Axis2 POJO实现WebService(一)发布
  4. python使用异常的目的和好处_python 错误与异常,python assert的作用
  5. 检查坏道右键单击盘符/属性/工具中的查错。
  6. Python 同一个类中不同函数相互调用
  7. Boot目录下内容丢失导致系统无法启动
  8. android钱包nfc功能,Android NFC(二)M1卡电子钱包功能
  9. 方法 手写promise_手写Promise类
  10. Hibernate常用查询
  11. python建模概述
  12. python 回归方程及回归系数的显著性检验_回归方程及回归系数的显著性检验演示教学...
  13. 《Using OpenRefine》翻译~8
  14. 刚刚!2022年ABC中国大学排行榜发布
  15. 变截面悬臂梁弯曲变形计算:理论计算以及有限元结果对比
  16. css文本缩进两个字符,css如何设置首行缩进2个字符
  17. 2020下半年教师资格证《幼儿综合素质》真题及答案
  18. 服务器摆放需要预留U位么_让客厅大一倍的小户型沙发摆放技巧,赶快收藏好!
  19. python画三角函数--cosx
  20. 猿创征文|ZooKeeper(伪)集群搭建

热门文章

  1. Android测试-Monkey Test
  2. BJUI--data-rule规则及自定义
  3. cmd 终端快速查看自己的ip地址
  4. idea中 Java xml注释缩进问题 解决方案
  5. CE修改器使用教程 [入门篇]
  6. web前端、个人简历模板、个人简历_优秀个人简历模板
  7. C++坦克大战源代码
  8. dosbox进行debug调试教程
  9. 在Codeblocks下配置GoogleTest单元测试工具
  10. Python学习笔记(15) 网络爬虫使用proxy实现自动换IP防封锁