软考试题希赛网爬取过程分享二
承接上篇【軟考試題希賽網爬取過程分享一】的列表特性分析,該篇主要目的獲取每日一練列表,獲取目標數據試題分析的URL(看過此篇,可達到手把手教你爬取內容精準分析)
獲取列表
首先完成成功獲取【每日一練】標題和查看【每日一練】的url
第一頁的id特性(開始做題)
第二頁的id特性(繼續做題)
""""獲取每日一練id""" def getList():urllist = "https://www.educity.cn/tiku/dp100110021008-1.html"r=requests.get(urllist,headers=header)html = etree.HTML(r.content)"""templist 獲取所有列表的集合"""templist = html.xpath("//div[@class='ecv2_tikucom_doItem clearfix']")daylist = []for v in templist :title = v.xpath(".//div[@class='ecv2_tikucom_doTitle ecv2_marginbottom16']/text()")[0]"""匹配id的時候有兩種情況,上一篇已經提到"""a = v.xpath(".//a//@href")[0]if(a=='javascript:;'):a = v.xpath(".//a//@data-accessid")[0]id = re.findall(r'\d+', a)day = {'title':title,'tcid':id[0]}daylist.append(day)return daylist運行該函數查看結果
獲取目標數據url
經多次點擊【考試模式】,【我要交卷】觀察到同一天的測試題的測試ID是不固定的,不像我們的新聞那樣,url中的id是固定值
點擊我要交卷獲取試題講解的url
由此可以得出,我們需要通過第一次爬取的ID,生成測試ID,拼接試題url即可直接找到試題分析的頁面
按照以下過程查看如何獲取測試ID
1、F12打開控制臺選擇network
2、點擊clear,點擊【考試模式】
3、找.do結尾的文件的并打開preview包含ID值比如為:5779393的文件
4、查看 headers,看下請求此接口需要傳遞的參數是不是都已經獲取到了
這個tcid正好是我們上步爬取獲取的id
Request URL: https://uc.educity.cn/ucapi/uc/paper/loadNotEndTestLog.do
tcId: 30024583
構建函數請求獲取試題解析ID
綜合getList和getStid可循環獲取所有的ID
有測試ID拼接試題解析的url:https://uc.educity.cn/tiku/testReport.html?id=5760667
總結
以上是生活随笔為你收集整理的软考试题希赛网爬取过程分享二的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 博客园文章索引生成器
- 下一篇: mrp手机主题