python实现单词的简单爬取
因为不需要登录之类的操作,可以说,这是对爬虫初学者来说最简单最基础的一个案例了,由于之后要用到这里就简单学习记录一下。
确定URL
爬取目标:金山词霸的四六级词汇
http://word.iciba.com/
我们可以很容易看到四个选项,六级就不列出来了。
- http://word.iciba.com/?action=courses&classid=11
- http://word.iciba.com/?action=courses&classid=122
- http://word.iciba.com/?action=courses&classid=12
- http://word.iciba.com/?action=courses&classid=123
网址很容易拿到,且规律这么明显,所以说很容易。
我们每次爬取单词的时候仅需对这四个词库随机选取即可。
我们选择四级必备词汇词库第一课点进去之后我们发现后面的url会加上一个参数,参数值为课的节数。这样我们根据这个规律来完成拼接一种词库界面的一节课的url。我们根据class以及其course的最大值来随机构造url。
choice = random.choice([(11, 226), (12, 105), (122, 35), (123, 25)])
url = "http://word.iciba.com/?action=words&class=" + str(choice[0]) + "&course=" + str(random.randint(1, choice[1]))
找到单词标签位置
我们找到单词所在的标签,确定每个单词所在的标签
这里我们可以只用xpath来获取,可以使用xpath helper插件(chrome)。我们右击元素选择copy ,copy xpath,这样我们就获取了这个元素的xpath位置
//*[@id=“word_list_1”]/li[2]/div[1]
我们可以通过改变标签的下标来改变不同的单词。获取里面的文字后面需要加上text()
这里我们就获得了第一个单词
如果我们把xpath里面的下标去掉会发生什么呢
div下标去掉
li下标也去掉
显示有二十个结果,那肯定是是个单词和释义啦!
但是我们发现,每一课其实是有分页的,即两个list,上面语法只能获得10个单词,我们需要改变一下语法才行。
我们发现两组单词都有一个共同的class word_main_list 我们从这里入手,最终得到获得所有单词的xpath语法,这里需要一点xpath语法基础。
获取英语单词
//*[@class=“word_main_list”]/li/div[@class=“word_main_list_w”]/span//text()
获取单词释义
//*[@class=“word_main_list”]/li/div[@class=“word_main_list_s”]/span//text()
爬取加处理
接下来的任务就很简单了,直接给出代码
from lxml import etree
import requests
import randomwords = []
meaning = []
choice = random.choice([(11, 226), (12, 105), (122, 35), (123, 25)])
url = "http://word.iciba.com/?action=words&class=" + str(choice[0]) + "&course=" + str(random.randint(1, choice[1]))
r = requests.get(url)
r.encoding = r.apparent_encoding
if r.status_code == 200:text = r.textdoc = etree.HTML(text)words = doc.xpath('//*[@class="word_main_list"]/li/div[@class="word_main_list_w"]/span//text()')meaning = doc.xpath('//*[@class="word_main_list"]/li/div[@class="word_main_list_s"]/span//text()')li = []for i in range(len(words)):dic = {'words': words[i], 'meaning': meaning[i]}li.append(dic)print(li)
python实现单词的简单爬取相关推荐
- Python爬虫案例:简单爬取肯德基餐厅位置信息
目录 代码 成功获取的数据预览 代码 # Python爬虫简单例子 # 爬取肯德基餐厅位置信息 # 仅供学习交流!import requests;# 判断是否是当前文件运行 if __name__ = ...
- python爬虫下载小说_用PYTHON爬虫简单爬取网络小说
用PYTHON爬虫简单爬取网络小说. 这里是17K小说网上,随便找了一本小说,名字是<千万大奖>. 里面主要是三个函数: 1.get_download_url() 用于获取该小说的所有章节 ...
- Python简单爬取电影磁力链接
Python简单爬取电影磁力链接 网页的链接:http://www.ygdy8.net/html/gndy/dyzz/list_23_2.html 打开你想要的电影:http://www.ygdy8. ...
- 用PYTHON爬虫简单爬取网络小说
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- python使用Cookie登录网页爬取信息(超简单)
python使用Cookie登录网页爬取信息(超简单) 因为工作原因,需要爬取一个医疗行业的网站的信息,而且目标网站还要登录才给你展现完整的页面,所以有了本文-- 看了好多爬取需要登录的博客,过程不表 ...
- python爬去新浪微博_Python 超简单爬取新浪微博数据 (高级版)
新浪微博的数据可是非常有价值的,你可以拿来数据分析.拿来做网站.甚至是*.不过很多人由于技术限制,想要使用的时候只能使用复制粘贴这样的笨方法.没关系,现在就教大家如何批量爬取微博的数据,大大加快数据迁 ...
- Python 超简单爬取新浪微博数据
新浪微博的数据可是非常有价值的,你可以拿来数据分析.拿来做网站.甚至是*****.不过很多人由于技术限制,想要使用的时候只能使用复制粘贴这样的笨方法.没关系,现在就教大家如何批量爬取微博的数据,大大加 ...
- Python爬虫:简单爬取粤菜菜谱
项目场景: 简单爬取粤菜菜谱. 实现思路: 访问主页,获取每个菜品的菜名.图片.详情页面网址. 访问上一步中获得的所有详情页面,获取工艺.口味.时间.主料.辅料信息. 清洗所获得的数据. 保存至本地文 ...
- java爬虫-简单爬取网页图片
刚刚接触到"爬虫"这个词的时候是在大一,那时候什么都不明白,但知道了百度.谷歌他们的搜索引擎就是个爬虫. 现在大二.再次燃起对爬虫的热爱,查阅资料,知道常用java.python语 ...
最新文章
- 测试linux下磁盘的读写速率
- AI一分钟|AI聊机器人“Shibuyu Mirai”获日本居住权,传今日头条3亿美元收购Faceu激萌
- 选择创业项目的基础——适合自己的才是最好的
- 记事本输入“联通”俩字,关闭再打开乱码
- QEventLoop的简单使用(二)
- OVS vxlan 底层结构分析 - 每天5分钟玩转 OpenStack(148)
- Django知识总结(一)
- 150 Evaluate Reverse Polish
- 冲刺阶段(二)第五天 5月16日
- JAVA语言运算符(算数运算符、赋值运算符、比较运算符、逻辑运算符、三元运算)
- 教师节送什么老师最开心?程序员三招解决家长送礼难题!
- idea中Terminal输入命令git log后如何退出
- Pytorch nn.functional.unfold()的简单理解与用法
- asterisk queue 队列
- java的package需要大写吗,java 数字转大写的小程序
- 微信小游戏开发指南(一)什么是微信小游戏
- 输入卡号生成银行卡图片python_python 模拟贷个卡号生成规则过程解析
- AFNetworkReachabilityManager检测网络状态
- XSS-lab通关记录
- render函数的使用
热门文章
- java实现table斜线,网页画个表,td、tr的,然后左上方第一个表格要求斜线格
- 怎么将自己的头像p到特定的背景图_怎么使用PS抠图,把扣出来的图片P到另张图上...
- 如何使用docker容器中的redis
- SAP工具箱 数据同步平台(九 与PO整合)
- Python-小游戏-乌龟吃鱼
- 洛谷P1005 矩阵取数游戏 ACM 大数+区间dp
- 写在2021的尾巴上
- linux网络连接红叉号,win10能上网,但右下角宽带连接图标显示红叉的解决方法
- 雅思阅读话题词汇-alluvial
- World Locking Tools for Unity (五)安装部分