av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

python 爬蟲基本使用——統計杭電oj題目正確率并排序

瀏覽:2日期:2022-07-07 10:13:48

python爬蟲主要用兩個庫:Urllib和BeautifulSoup4。一個用來爬取網頁,一個用來解析網頁。

Urllib是Python內置的HTTP請求庫,它包含四個模塊:

1、request,最基本的 HTTP 請求模塊,用來模擬發送請求,就像在瀏覽器里輸入網址然后敲擊回車一樣,只需要給庫方法傳入 URL 與額外的參數,就可以模擬這個過程。2、error ,異常處理模塊,如果出現請求錯誤,我們可以捕獲這些異常,然后進行重試或其他操作保證程序不會意外終止。3、parse ,工具模塊,提供了許多 URL 處理方法,比如拆分、解析、合并等。4、robotparser,主要用于識別網站的 robots.txt 文件,判斷網站是否可以爬取,用的較少。

這里只用到了最常用的request。

BeautifulSoup4從bs4包中導出,這里主要用的就是它的解析功能。

代碼如下,注釋寫得很清楚了:

#杭電OJ題目AC率排序import urllib.request as urfrom bs4 import BeautifulSoup dic = {} #存:'題號:題名 AC 提交次數 正確率'for t in range(1,59,1):#1~58頁都爬一遍 print(t) url = ’http://acm.hdu.edu.cn/listproblem.php?vol=’+str(t) #存網址 bs = BeautifulSoup(ur.urlopen(url).read(),'html.parser')#獲取網址的html并轉換為可以python可以使用的結構 ql0 = str(bs.body.table.contents[11].td.table.contents[1])#網頁的DOM解析后可以直接通過'.'來尋找子元素,找到題目的列表元素后,將列表中所有題目轉換成字符串。(可以輸出看看) ql = ql0[30:-10].split(';') #字符串中的題目以';'分隔,將它們分開,并存到列表中 for i in ql: #以下就是格式化處理每個題目,然后存到字典中 info1 = i.split(’,'’,1) num = info1[0].split(’,’)[1] info2 = info1[1].split(’',’,1) name = info2[0] right,submit = info2[1].split(’,’,1) submit = submit[:-1] dic[num] = [name,int(right),int(submit),int(right)/int(submit)]dic = sorted(dic.items(),key = lambda x: x[1][3]) #每頁題目都存入字典后,把字典中的題目通過正確率進行排序,傳出列表with open(’Statistics.txt’,’w’,encoding = ’utf-8’) as f:#把統計排序好的題目保存到txt中 for i in dic: f.write(str(i)+’n’) print('Success!')

以上就是python 爬蟲基本使用——統計杭電oj題目正確率并排序的詳細內容,更多關于python 爬蟲的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 久久里面有精品 | 成人在线不卡 | 91精品国产高清一区二区三区 | 天天射网站 | 久久久精品一区二区三区 | 亚洲精品女人久久久 | 国产精品一区二区久久 | 久久久国| 欧美日韩国产免费 | 2一3sex性hd| 在线一级片 | 精品国产免费人成在线观看 | 中文字幕 国产精品 | 黄色在线观看国产 | 免费国产视频 | 日韩视频一区二区三区 | 在线欧美a| 国产精品久久亚洲7777 | 国产一区二区三区久久久久久久久 | 免费看国产一级特黄aaaa大片 | 欧美一区二区 | 爱爱免费视频 | 91社区在线观看播放 | 欧美精品啪啪 | 日韩欧美在线不卡 | 水蜜桃久久夜色精品一区 | 免费看一级毛片 | 一区二区福利视频 | 一级aaaa毛片 | a久久| 精品国产乱码一区二区三 | 久久久青草婷婷精品综合日韩 | 日韩视频在线免费观看 | 一区二区中文字幕 | 日本在线中文 | 日本网站免费观看 | 二区高清| 一区二区免费视频 | 日本不卡视频在线播放 | 色就是色欧美 | 国产精品久久久久久久久久免费看 |