最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年10月26日 08:43:03   作者:頎周  
這篇文章主要介紹了python 爬蟲基本的基本使用,主要利用了Urllib和BeautifulSoup4這兩個庫,配以簡單的實例幫助大家理解,感興趣的朋友可以了解下

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

  Urllib是Python內(nèi)置的HTTP請求庫,它包含四個模塊:

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

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

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

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

#杭電OJ題目AC率排序

import urllib.request as ur
from bs4 import BeautifulSoup 

dic = {} #存:"題號:題名 AC 提交次數(shù) 正確率"
for t in range(1,59,1):#1~58頁都爬一遍
 print(t)
 url = 'http://acm.hdu.edu.cn/listproblem.php?vol='+str(t) #存網(wǎng)址
 bs = BeautifulSoup(ur.urlopen(url).read(),"html.parser")#獲取網(wǎng)址的html并轉(zhuǎn)換為可以python可以使用的結(jié)構(gòu)
 ql0 = str(bs.body.table.contents[11].td.table.contents[1])#網(wǎng)頁的DOM解析后可以直接通過"."來尋找子元素,找到題目的列表元素后,將列表中所有題目轉(zhuǎn)換成字符串。(可以輸出看看)
 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:#把統(tǒng)計排序好的題目保存到txt中
 for i in dic:
  f.write(str(i)+'\n') 
print("Success!")

以上就是python 爬蟲基本使用——統(tǒng)計杭電oj題目正確率并排序的詳細內(nèi)容,更多關(guān)于python 爬蟲的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 對python pandas 畫移動平均線的方法詳解

    對python pandas 畫移動平均線的方法詳解

    今天小編就為大家分享一篇對python pandas 畫移動平均線的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python自動掃碼支付的實現(xiàn)示例

    Python自動掃碼支付的實現(xiàn)示例

    本文主要介紹了Python自動掃碼支付的實現(xiàn)示例,包括二維碼識別、自動填寫支付信息、自動點擊支付等過程,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • Python使用Django實現(xiàn)博客系統(tǒng)完整版

    Python使用Django實現(xiàn)博客系統(tǒng)完整版

    這篇文章主要為大家詳細介紹了Python利用Django完整的開發(fā)一個博客系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • PyQt5多線程刷新界面防假死示例

    PyQt5多線程刷新界面防假死示例

    今天小編就為大家分享一篇PyQt5多線程刷新界面防假死示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • pandas參數(shù)設(shè)置的實用小技巧

    pandas參數(shù)設(shè)置的實用小技巧

    這篇文章主要給大家介紹了關(guān)于pandas參數(shù)設(shè)置的實用小技巧,文中通過實例代碼結(jié)束的非常詳細,對大家學(xué)習(xí)或者使用pandas具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python中實現(xiàn)單例模式的n種方式和原理

    Python中實現(xiàn)單例模式的n種方式和原理

    這篇文章主要介紹了Python中實現(xiàn)單例模式的n種方式和原理,需要的朋友可以參考下
    2018-11-11
  • 使用Python實現(xiàn)圖片處理工具

    使用Python實現(xiàn)圖片處理工具

    這篇文章主要介紹了如何基于?wxPython?和?Pillow?(PIL)?的簡單圖片處理工具,可以支持圖片選擇,旋轉(zhuǎn),合并和壓縮等功能,感興趣的小伙伴可以了解下
    2025-01-01
  • Python對excel的基本操作方法

    Python對excel的基本操作方法

    這篇文章主要介紹了Python對excel的基本操作,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • 利用pygame完成動畫精靈和碰撞檢測

    利用pygame完成動畫精靈和碰撞檢測

    這篇文章主要介紹了利用pygame完成動畫精靈和碰撞檢測,代碼詳細,內(nèi)容豐富,對于想要學(xué)習(xí)pygame的朋友來講是一個不錯的練習(xí),需要的朋友可以參考下
    2021-04-04
  • 淺析matlab中imadjust函數(shù)

    淺析matlab中imadjust函數(shù)

    對進行圖像的灰度變換,即調(diào)節(jié)灰度圖像的亮度或彩色圖像的顏色矩陣。這篇文章主要介紹了matlab中imadjust函數(shù),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下
    2020-02-02

最新評論

聊城市| 永康市| 大足县| 三明市| 高尔夫| 句容市| 平乐县| 鹤峰县| 循化| 桓台县| 南漳县| 玉树县| 宁阳县| 白银市| 金华市| 农安县| 保德县| 屏东市| 北碚区| 桂东县| 扬州市| 石楼县| 行唐县| 和田市| 维西| 同心县| 永福县| 淄博市| 葵青区| 宁乡县| 徐闻县| 镇沅| 广东省| 山西省| 商水县| 东平县| 沙雅县| 北安市| 仁化县| 习水县| 秦皇岛市|