python爬虫爬取英文考研词汇
这几天开始背诵考研单词,在网上查找英语考研必备词汇,发现都是长这样的:
每一页的点击太费时费力了。因此萌生了为什么不能用爬虫把单词爬下来保存在本地呢?说干咱就干。首先点开搜索中的某个网页,分析网页的结构,找到其中的规律。例如,我找的是跨考考研的网站:
这是该网站http://www.kuakao.com/english/ch/39183.html的英语词汇链接起始.
安全起见,我们先查看网站的robots协议,可以看到并没有限制我们爬取词汇页面。
接下来使用chrome浏览器,右键点击view page source(ctrl-U),也可以选择inspect(ctrl+shift+I),找到对应的词汇部分,
分析发现,词汇部分开头是用
先实现爬取网页的过程:
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)
尝试运行,从返回的结果来看,网页内容能够正常显示中文字符,也自动进行了排版。
接下来我们需要提取网页中词汇的部分,使用Beautifulsoup的find方法查找class=artTxt的div,返回的结果中,我们发现除了英文词汇还有其余不想要的内容,这是由于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爬虫爬取英文考研词汇相关推荐
- python爬虫提取人名_python爬虫—爬取英文名以及正则表达式的介绍
python爬虫-爬取英文名以及正则表达式的介绍 爬取英文名: 一. 爬虫模块详细设计 (1)整体思路 对于本次爬取英文名数据的爬虫实现,我的思路是先将A-Z所有英文名的连接爬取出来,保存在一个csv ...
- 四小时学python爬虫爬取信息系列(第一天)
四小时学python爬虫爬取信息系列(第一天)(全是干货) 1.安装requests库(可以在电脑python,我是进入anaconda我建的虚拟环境) anaconda虚拟环境法流程: conda ...
- 用Python爬虫爬取自己要的文章
用Python爬虫爬取自己要的文章 在CSDN上有很多精彩的技术博客文章,我们可以把它爬取下来,保存在本地磁盘,可以很方便以后阅读和学习,现在我们就用python编写一段爬虫代码,来实现这个目的. 我 ...
- Python爬虫-爬取wallhaven壁纸
Python爬虫-爬取wallhaven壁纸 前言 可行性分析 功能介绍 效果展示 基本思路 1.获取每页(1页24张)壁纸的url 2.获取每张壁纸缩略图的url 3.获取壁纸原图下载的url 4. ...
- python爬虫爬取微信公众号小程序信息
python爬虫爬取微信公众号小程序信息 爬取内容 某汽车维修信息提供的维修店名称,地点以及电话(手机)号码 爬取步骤 啥也别管,先抓包看看,在这里,博主使用的抓包软件是charles 抓包:将网络传 ...
- python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(二)
上一章: python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(一.爬虫思路及代码) 第三步:数据清洗 清洗数据很简单,就是数据太乱的话,就得花些时间,所以一定要有一个好的方法,才能避免在清洗数据 ...
- 在当当买了python怎么下载源代码-python爬虫爬取当当网
[实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...
- python爬虫代码实例-Python爬虫爬取百度搜索内容代码实例
这篇文章主要介绍了Python爬虫爬取百度搜索内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 搜索引擎用的很频繁,现在利用Python爬 ...
- python爬虫数据分析可以做什么-python爬虫爬取的数据可以做什么
在Python中连接到多播服务器问题,怎么解决你把redirect关闭就可以了.在send时,加上参数allow_redirects=False 通常每个浏览器都会设置redirect的次数.如果re ...
- python爬虫爬取csdn博客专家所有博客内容
python爬虫爬取csdn博客专家所有博客内容: 全部过程采取自动识别与抓取,抓取结果是将一个博主的所有 文章存放在以其名字命名的文件内,代码如下 #coding:utf-8import urlli ...
最新文章
- 自定义InputFormat案例
- django的模板系统
- Axis2 POJO实现WebService(一)发布
- python使用异常的目的和好处_python 错误与异常,python assert的作用
- 检查坏道右键单击盘符/属性/工具中的查错。
- Python 同一个类中不同函数相互调用
- Boot目录下内容丢失导致系统无法启动
- android钱包nfc功能,Android NFC(二)M1卡电子钱包功能
- 方法 手写promise_手写Promise类
- Hibernate常用查询
- python建模概述
- python 回归方程及回归系数的显著性检验_回归方程及回归系数的显著性检验演示教学...
- 《Using OpenRefine》翻译~8
- 刚刚!2022年ABC中国大学排行榜发布
- 变截面悬臂梁弯曲变形计算:理论计算以及有限元结果对比
- css文本缩进两个字符,css如何设置首行缩进2个字符
- 2020下半年教师资格证《幼儿综合素质》真题及答案
- 服务器摆放需要预留U位么_让客厅大一倍的小户型沙发摆放技巧,赶快收藏好!
- python画三角函数--cosx
- 猿创征文|ZooKeeper(伪)集群搭建