软考试题希赛网爬取过程分享一

本文分享了使用Python爬取希赛网软考每日一练试题的思路和过程,包括目标网页分析、分页URL变化的观察以及接口文件的查找,为后续爬虫开发打下基础。

作为开发人员,不论出于什么原因,都是有需求才有功能,才有我们描绘蓝图的机会或动力

承接上篇【python爬取软考每日一练试题存入数据库】的源码分享,这次着重开发思路和过程

爬取试题的起因(可略过)

之前总以为即使没有较高的学历,有能力,有学习力就可以了。可是,实际情况,当作为父母后,面临孩子上学,要积分的硬性要求,我又踏上了考试的征途。软考,作为码农,说这是对我们的赏赐都不为过。利用碎片化时间去刷试题,于是找到了希赛网的每日一练,但是,对我而言不太方便,于是有了爬取试题的冲动

目标网页分析【流程】

1、选择你感兴趣的科目,做一套每日一练的考试模式的试题,然后提交,跳转到试题分页页面。这个流程下来,试题分析页面就是我们最终要的数据包含试题、答案、分析。

2、我感觉爬取数据,定位目标数据是第一步,也是整个python运行结果后的最后一步。按照访问页面层层递进,得到:科目每日一练列表,有分页-》开始做题(继续做题)-》选择考试模式-》点击我要交卷-》每日一练试题分析列表

目标网页列表数据分析

++打开https://www.educity.cn/tiku/dp100110011003-1.html列表页面++

多次点击分页对比url变化:

https://www.educity.cn/tiku/dp100110011003-2.html
https://www.educity.cn/tiku/dp100110011003-3.html
https://www.educity.cn/tiku/dp100110011003-4.html
可得到页数page的位置

浏览器F12打开控制台:

首选选择Network,因为我更偏向于json文件

点击clear清除记录,然后F5刷新得到加载的所有资源列表
除去各种图片、html、js逐个点击其他文件,同时选中preview,最后发现,“.do”文件是它的接口文件,但是没有该列表的json数据,不要着急

然后选择elements查看源码视图选中每日一练

分析div层级结构,找到特征,为xpath做准备

经过以上步骤,我们初步可以确定列表特性
div的class="ecv2_tikucom_doItem clearfix"里面包含【每日一练】标题和查看每日一练的url

xpath的路径如下:xpath("//div[@class='ecv2_tikucom_doItem clearfix']")双斜线用的是相对路径

关于url,有两种情况
<a href="javascript:;" data-accessid="/tiku/dp30022897" data-id="30022897" data-testid="5741829" data-subcode="100110021009" class="ecv2_btn_kszt jixuzuoti">继续做题</a>

<a href="/tiku/dp30026512.html" target="_blank" class="ecv2_btn_kszt">开始做题</a>

所以在我们获取url的时候要分两种情况,分别取‘data-accessid’和‘href’的值

a = v.xpath(".//a//@href")[0]
if (a == 'javascript:;'):
  a = v.xpath(".//a//@data-accessid")[0]
确定分页page的位置
url= "https://www.educity.cn/tiku/dp100110011003-{}.html".format(page)
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值