软考试题希赛网爬取过程分享一
作為開發人員,不論出于什么原因,都是有需求才有功能,才有我們描繪藍圖的機會或動力
承接上篇【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"里面包含【每日一練】標題和查看每日一練的urlxpath的路徑如下: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)總結
以上是生活随笔為你收集整理的软考试题希赛网爬取过程分享一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于SSH的电子政务系统(附论文)
- 下一篇: 矩阵分析与应用+张贤达