日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软考试题希赛网爬取过程分享二 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

承接上篇【軟考試題希賽網爬取過程分享一】的列表特性分析,該篇主要目的獲取每日一練列表,獲取目標數據試題分析的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

"""第二步嘗試獲取測試ID""" def getStid(id):data={'tcId': id}urllist = "https://uc.educity.cn/ucapi/uc/paper/loadNotEndTestLog.do"r = requests.post(urllist, data=data, headers=header)tempjson = json.loads(r.content)# 結果要轉jsonprint(tempjson)print(tempjson['model']['id'])# 安返回結果結構逐級獲取目標ID getStid(30025788)

綜合getList和getStid可循環獲取所有的ID

有測試ID拼接試題解析的url:https://uc.educity.cn/tiku/testReport.html?id=5760667

總結

以上是生活随笔為你收集整理的软考试题希赛网爬取过程分享二的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。