非常适合新手的一个Python爬虫项目: 打造一个英文词汇量测试脚本!
最近朋友在苦学英文,但是又不知道自己学的怎么样了,直到有一天,他找到了扇贝网,里面有个“评估你的单词量”功能非常的好,就推荐给我了!
今天我们就用python做一个小的爬虫,然后自己写一个脚本来实现这个功能吧!
目标:打造一个英文词汇量测试脚本
url:扇贝网
工具:python3.6、pycharm、requests库
思路:
和网页一样,总共分三步:
先来看看网页中数据,用F12开发者工具抓包就可以
为了更好的演示,这里网页缩小了。
点击开始,在来看看出现了什么
这里我们抓到了一个包,这个json数据中包含了所有的类别或者说是级别,一共十大类,我们点击”响应”验证下
可以看到,显示内容在我们抓到的json数据中,但是0和1中的内容有的一样,有的不一样是什么鬼?不要急,我们先选择‘高考’,在抓下包看看
选择高考后,网页直接给出了第二步,50个单词选择,注意,先看下抓到的json数据的真实地址
还记得我们在第一步抓到的包吗?0里面就是这个真实地址最后的category的值,1里面是对应的显示在网页中的内容,好了,第二步的真实url也被我们找到规律了,那下来就是分析单词了,看看有什么规律,我们点开一个看看
有几个值非常重要,也是我们的目标:
Content的值是显示的单词
Definition_choices是需要我们判断的多个词义,中间包含有正确的词义,每个词义中的rank值应该是该词义的标识
rank值是正确的词义,也由此判断上述多个词义中的正确词义
ok,到这里我们就可以开始写代码了,具体过程就不一一说明了,没有反爬,全部是json数据的读取和判断,先放上我的代码
请大家忽略我那渣渣的英语水平和排版
由于这个网站非常简单,仅仅抓包就可以得到所有数据,没有任何反爬,所以,也是我们新手练手的好地方,大家都可以试试,如果有作出更漂亮的脚本,欢迎大家在评论区一起分享!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
jquery里正则的使用方法及常用的正则验证
本文是一篇关于jquery使用正则来验证输入,及一些常用验证规则的基础文章,适合新手。 假设我们的网页里有这样的一个表单: <input id="aijquery" type="text"> <button id="btn">验证</button> 1.验证用户输入的只能是英文和数字: $("#btn").click(function(){ var $aijquery=$("#aijquery"); if(!/^[a-z0-9]+$/ig.test($aijquery.val())){ alert("只能数字和英文"); } }); 2.验证用户输入只能为数字,并且如果是小数的话,最多只能是两位小数: $("#btn").click(function(){ var v=$("#aijquery").val(); if(!/^\d+(?:\.\d{0,2})?$/.test(v).test(v)){ alert("只能为数字,并且如果是小数的话,最多只能是两位小数"); } }); 3.验证电子邮箱: $("#btn").click(functi...
- 下一篇
jquery里判断数组内是否包含了指定的值或元素的方法
本文讲的是在jquery里,如何判断一个数组里是否包含了指定的值,变量,或其它对象元素的方法。 在jquery里,我们可以用$.inArray来判断一个数组里是否包含了指定的值或其它对象元素,来看一个简单的实例: var arr=["aijquery","jquery","I like it"]; var str="aijquery.cn"; if($.inArray(str,arr)<0){ alert("数组里不包含!"); } $.inArray是用来获取指定的值在数组中的位置,从0开始计数(如果没有找到则返回 -1 。 上面的数组只是普通的字符型数组,下面我们来看其它类型的数组,比如jquery里用$.makeArray来生成的HTML元素类数组: //我们首先使用$.makeArray来生成一个数组 var arr=$.makeArray($("div")); 现在假设这些div里,我们其中有一个ID为"aijquery"的div,那么我们是否可以用上面的方法来判断这个div是否包含在这个数组里呢? 答案是可以的,不过需要注意转换jquery对象为js对象,来看下面站...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7