1. 程式人生 > >python網路爬蟲與資訊採取之解析網頁例項---oJ期末成績排名

python網路爬蟲與資訊採取之解析網頁例項---oJ期末成績排名

目的:打印出排名,學號,姓名,成績;

首先,開啟網頁的原始碼,如下:


你會發現,很混亂,沒有層次感;不用急,告訴你一個小技巧,先使用 soup.prettify() 函式進行格式化一下,得到如下結果:


這樣就好受多了;

接下來對原始碼進行分析;你會想這麼多難道要一句句的看嗎,那太浪費時間了吧;對,這樣做確實浪費時間,那怎麼做呢?

首先,你應該明白你想要得到什麼,然後再原始碼中直接找你要得到的東西;

此例項中你會發現,資訊都在table標籤中,不過問題在於有兩個table標籤,幸好有class這個屬性,我們可以根據class屬性來精確地得到資訊的大致位置。

然後,資訊包裹在a標籤中,a標籤又包裹在td標籤中,td標籤又包裹在tr標籤中,其次,每個人的全部資訊都在tr中,所以可以對tr進行迴圈從而得到每個人的資訊,所以思路就是根據導航樹一步步的進行遍歷從 table--tr,遍歷到tr時,當然這裡用到了正則表示式直接從tr開始查詢;對tr進行迴圈,然後再tr中查詢a標籤,存入一個列表中。

import requests
from bs4 import BeautifulSoup
import bs4
import re


url = "http://219.218.128.149/JudgeOnline/contestrank.php?cid=2756"
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
html = r.text
soup = BeautifulSoup(html, "html.parser")
uniolist = []
count = 1
for tr in soup.find_all("tr",{"class":re.compile("[e|o][v|d][e|d]n*row")}):
    td = tr.find_all('a')
    uniolist.append([count,td[0].string, td[1].string, td[2].string])
    count = count + 1
delt = "{:^5}\t{:^10}\t{:^16}\t{:^10}"
# print(title)
print(delt.format("排名", "學號", "姓名", "solved"))
for i in range(5):
    u = uniolist[i]
    print(delt.format(u[0], u[1], u[2],u[3]))
執行結果:

隱私保護一下吧吐舌頭

相關推薦

python網路爬蟲資訊採取解析網頁例項---oJ期末成績排名

目的:打印出排名,學號,姓名,成績; 首先,開啟網頁的原始碼,如下: 你會發現,很混亂,沒有層次感;不用急,告訴你一個小技巧,先使用 soup.prettify() 函式進行格式化一下,得到如下結果: 這樣就好受多了; 接下來對原始碼進行分析;你會想這麼多難道要一句句

python網路爬蟲資訊採取解析網頁(三)---- BeautifulSoup庫的導航樹例項

上篇我們講到了通過標籤的名稱和屬性來查詢標籤的findAll(),本篇將講解如何通過標籤在文件中的位置進行查詢------導航樹 一篇文章,可以將其標籤分為子標籤,父標籤和兄弟標籤。而導航樹的功能就是

python 網路爬蟲資訊採取異常處理

本篇文章轉自Ryan Mitchell 寫的python:網路資料採集 網路是十分複雜的。網頁資料格式不友好,網站伺服器宕機,目標資料的標籤找不到,都是很麻煩的事情。網路資料採集最痛苦的遭遇之一,就是爬蟲執行的時候你洗洗睡了,夢想著明天一早資料就都會採集好放在

Python網路爬蟲資訊提取Day2

Python網路爬蟲與資訊提取 一、導學 掌握定向網路資料爬取和網頁解析的基本能力 1、Requests庫:自動爬取HTML頁面,自動向網路提交請求 2、robots.txt:網路爬蟲排除標準 3、Beautiful Soup庫:解析HTML頁面 4、Projects:實戰專案A/B 5、Re庫:正

Python網路爬蟲資訊提取Day1

Python網路爬蟲與資訊提取 一、導學 掌握定向網路資料爬取和網頁解析的基本能力 1、Requests庫:自動爬取HTML頁面,自動向網路提交請求 2、robots.txt:網路爬蟲排除標準 3、Beautiful Soup庫:解析HTML頁面 4、Projects:實戰專案A/B 5、Re庫:正

嵩天教授的Python網路爬蟲資訊提取課程筆記——單元1. requests庫入門

本文目錄 Requests庫介紹 requests.get(url, params, **kwargs)方法及其他請求方法介紹 Response類屬性簡介 Reponse類中的encoding與app

Python網路爬蟲資訊提取_爬蟲例項(學習筆記)

慕課課程學習筆記 1. 京東商品頁面的爬取  1.採用get()方法,獲取Response物件; import requests url = 'https://item.jd.com/100000947807.html' r = requests.get(url)

【MOOC】Python網路爬蟲資訊提取-北京理工大學-part 4

網路爬蟲之框架 1.scrapy爬蟲框架介紹 1.1.scrapy爬蟲框架介紹 安裝方法: 簡要地說,Scrapy不是一個函式功能庫,而是一個快速功能強大的網路爬蟲框架。 (爬蟲框架是實現爬蟲功能的一個軟體結構和功能元件集合,是一個半成品,

Python網路爬蟲資訊提取(三)bs4入門

  Python的requests庫可以幫助我們獲取到大量的資訊,而如果想對這些資訊進行提取與分析,則經常使用beautifulsoup這個用來解析HTML和XML格式的功能庫。  beautifulsoup庫的安裝和requests的流方法一樣,可直接在cmd中輸入pip

Python網路爬蟲資訊提取(中國大學mooc)

目錄 Python網路爬蟲與資訊提取 淘寶商品比價定向爬蟲 股票資料定向爬蟲 1. 淘寶商品比價定向爬蟲 功能描述 目標:獲取淘寶搜尋頁面的資訊 理解:淘寶的搜尋介面翻頁的處理 技術路線:requests

Python網路爬蟲資訊提取-Day14-(例項)股票資料定向爬蟲

功能描述 目標:獲取上交所和深交所所有股票的名稱和交易資訊 股票資料是進行量化交易的基礎型資料,此爬蟲也能為量化交易提供獲得基礎資料的方法 輸出:儲存到檔案中 技術路線:requests‐bs4‐re 候選資料網站的選擇 百度股票:https://gupiao.baidu

Python網路爬蟲資訊提取-Day5-Requests庫網路爬取實戰

一、京東商品頁面的爬取 先選取一個商品頁面 直接利用之前的程式碼框架即可 import requests url = "https://item.jd.com/12186192.html" try: r = requests.get(url) r.raise_for

Python網路爬蟲資訊提取-Day9-資訊標記提取方法

一、資訊標記的三種形式 我們需要對資訊進行表記,使得我們能夠理解資訊所反饋的真實含義。 標記後的資訊可形成資訊組織結構,增加了資訊維度 標記的結構與資訊一樣具有重要價值 標記後的資訊可用於通訊、儲存或

【MOOC】Python網路爬蟲資訊提取-北京理工大學-part 1

【第〇周】網路爬蟲之前奏 網路爬蟲”課程內容導學 【第一週】網路爬蟲之規則 1.Requests庫入門 注意:中文文件的內容要稍微比英文文件的更新得慢一些,參考時需要關注兩種文件對應的Requests庫版本。(對於比較簡單的使

python網路爬蟲資訊提取(四)Robots協議

Robots協議  例項一京東 例項二亞馬遜緒論 網路爬蟲引發的問題1、網路爬蟲的尺寸爬取網頁 Requests庫爬取網站 Scrapy庫爬取全網 建立搜尋引擎2、網路爬蟲引發的問題1.伺服器效能騷擾2.法律風險3.洩露隱私3、網路爬蟲的限制來源審查:判斷User-Agent

j記錄學習--python網路爬蟲資訊提取

The website is the API...要獲取網站內容,只要把網站當成API就可以了。 requests庫獲取網頁資訊---》Beautiful Soup解析提取到資訊的內容---》利用re庫正則表示式提取其中某部分的關鍵資訊----》Scrapy*網路爬蟲 網路

Python網路爬蟲資訊提取(五)資訊標記資訊提取的一般方法

目前國際公認的資訊標記種類共有如下三種:名稱方式例項XML(eXtensible Markup Language)基於HTML的用有名稱與屬性的標籤進行標記的方式<name>...</name>     <name />    <!-

【MOOC】Python網路爬蟲資訊提取-北京理工大學-part 3

【第三週】網路爬蟲之實戰 一、Re(正則表示式)庫入門 1.正則表示式的概念 1.1正則表示式是什麼 正則表示式是用來簡潔表達一組字串的表示式。 使用正則表示式的優勢就是:簡潔、一行勝千言 一行就是特徵(模式) 例1:代表一組字串:

【MOOC】Python網路爬蟲資訊提取-北京理工大學-part 2

【第二週】 網路爬蟲之提取 Beautiful Soup庫入門 Beautiful Soup庫的安裝與測試 <html><head><title>This is a python demo page<

python網路爬蟲爬取汽車家的最新資訊和照片

實現的功能是爬取汽車之家的最新資訊的連結 題目和文章中的照片 爬蟲需要用到我們使用了 requests 做網路請求,拿到網頁資料再用 BeautifulSoup 進行解析 首先先檢查是否安裝了pip,如果已經安裝了pip,直接pip install requests,pip uninstal