因为不需要登录之类的操作,可以说,这是对爬虫初学者来说最简单最基础的一个案例了,由于之后要用到这里就简单学习记录一下。

确定URL

爬取目标:金山词霸的四六级词汇

http://word.iciba.com/

我们可以很容易看到四个选项,六级就不列出来了。

  1. http://word.iciba.com/?action=courses&classid=11
  2. http://word.iciba.com/?action=courses&classid=122
  3. http://word.iciba.com/?action=courses&classid=12
  4. 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实现单词的简单爬取相关推荐

  1. Python爬虫案例:简单爬取肯德基餐厅位置信息

    目录 代码 成功获取的数据预览 代码 # Python爬虫简单例子 # 爬取肯德基餐厅位置信息 # 仅供学习交流!import requests;# 判断是否是当前文件运行 if __name__ = ...

  2. python爬虫下载小说_用PYTHON爬虫简单爬取网络小说

    用PYTHON爬虫简单爬取网络小说. 这里是17K小说网上,随便找了一本小说,名字是<千万大奖>. 里面主要是三个函数: 1.get_download_url() 用于获取该小说的所有章节 ...

  3. Python简单爬取电影磁力链接

    Python简单爬取电影磁力链接 网页的链接:http://www.ygdy8.net/html/gndy/dyzz/list_23_2.html 打开你想要的电影:http://www.ygdy8. ...

  4. 用PYTHON爬虫简单爬取网络小说

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  5. python使用Cookie登录网页爬取信息(超简单)

    python使用Cookie登录网页爬取信息(超简单) 因为工作原因,需要爬取一个医疗行业的网站的信息,而且目标网站还要登录才给你展现完整的页面,所以有了本文-- 看了好多爬取需要登录的博客,过程不表 ...

  6. python爬去新浪微博_Python 超简单爬取新浪微博数据 (高级版)

    新浪微博的数据可是非常有价值的,你可以拿来数据分析.拿来做网站.甚至是*.不过很多人由于技术限制,想要使用的时候只能使用复制粘贴这样的笨方法.没关系,现在就教大家如何批量爬取微博的数据,大大加快数据迁 ...

  7. Python 超简单爬取新浪微博数据

    新浪微博的数据可是非常有价值的,你可以拿来数据分析.拿来做网站.甚至是*****.不过很多人由于技术限制,想要使用的时候只能使用复制粘贴这样的笨方法.没关系,现在就教大家如何批量爬取微博的数据,大大加 ...

  8. Python爬虫:简单爬取粤菜菜谱

    项目场景: 简单爬取粤菜菜谱. 实现思路: 访问主页,获取每个菜品的菜名.图片.详情页面网址. 访问上一步中获得的所有详情页面,获取工艺.口味.时间.主料.辅料信息. 清洗所获得的数据. 保存至本地文 ...

  9. java爬虫-简单爬取网页图片

    刚刚接触到"爬虫"这个词的时候是在大一,那时候什么都不明白,但知道了百度.谷歌他们的搜索引擎就是个爬虫. 现在大二.再次燃起对爬虫的热爱,查阅资料,知道常用java.python语 ...

最新文章

  1. 测试linux下磁盘的读写速率
  2. AI一分钟|AI聊机器人“Shibuyu Mirai”获日本居住权,传今日头条3亿美元收购Faceu激萌
  3. 选择创业项目的基础——适合自己的才是最好的
  4. 记事本输入“联通”俩字,关闭再打开乱码
  5. QEventLoop的简单使用(二)
  6. OVS vxlan 底层结构分析 - 每天5分钟玩转 OpenStack(148)
  7. Django知识总结(一)
  8. 150 Evaluate Reverse Polish
  9. 冲刺阶段(二)第五天 5月16日
  10. JAVA语言运算符(算数运算符、赋值运算符、比较运算符、逻辑运算符、三元运算)
  11. 教师节送什么老师最开心?程序员三招解决家长送礼难题!
  12. idea中Terminal输入命令git log后如何退出
  13. Pytorch nn.functional.unfold()的简单理解与用法
  14. asterisk queue 队列
  15. java的package需要大写吗,java 数字转大写的小程序
  16. 微信小游戏开发指南(一)什么是微信小游戏
  17. 输入卡号生成银行卡图片python_python 模拟贷个卡号生成规则过程解析
  18. AFNetworkReachabilityManager检测网络状态
  19. XSS-lab通关记录
  20. render函数的使用

热门文章

  1. java实现table斜线,网页画个表,td、tr的,然后左上方第一个表格要求斜线格
  2. 怎么将自己的头像p到特定的背景图_怎么使用PS抠图,把扣出来的图片P到另张图上...
  3. 如何使用docker容器中的redis
  4. SAP工具箱 数据同步平台(九 与PO整合)
  5. Python-小游戏-乌龟吃鱼
  6. 洛谷P1005 矩阵取数游戏 ACM 大数+区间dp
  7. 写在2021的尾巴上
  8. linux网络连接红叉号,win10能上网,但右下角宽带连接图标显示红叉的解决方法
  9. 雅思阅读话题词汇-alluvial
  10. World Locking Tools for Unity (五)安装部分