1. 程式人生 > >[筆記]python網路爬蟲:一個簡單的定向爬取大學排名資訊示例

[筆記]python網路爬蟲:一個簡單的定向爬取大學排名資訊示例

爬取的網站資訊

  <div class="section"><a id="zhb" name="zhb"></a>
    <div class="title t2"><h1><img src="images/title2.png" alt="綜合榜" /></h1></div>

    <div class="conBox zhb" id="Tabs_zhb">
      <div class="tabNav clearfix">
        <a class
="tabs_zhb"><p>1-10</p></a> <a class="tabs_zhb"><p>11-20</p></a> <a class="tabs_zhb"><p>21-30</p></a> <a class="tabs_zhb"><p>31-40</p></a> <a class="tabs_zhb"><p>41-50</p></a
> </div> <div class="tabCon"> <div class="zhbCon tabBox table2"> <table cellpadding="0" cellspacing="0" width="100%"> <tr> <th width="5%">名次</th> <th width="25%">學校名稱</th> <th
width="8%">型別</th> <th width="8%">所在地區</th> <th width="8%">總分</th> <th width="13%">辦學型別</th> <th width="8%">星級排名</th> <th width="15%">辦學層次</th> </tr> <tr> <td>1</td> <td><a href="http:
//souky.eol.cn/HomePage/index_147.html">北京大學</a></td> <td>綜合</td> <td>北京</td> <td>100.00</td> <td>中國研究型</td> <td>7星級</td> <td>世界知名高水平大學</td> </tr> <tr class="c2"> <td>2</td> <td><a href="http://souky.eol.cn/HomePage/index_5.html">清華大學</a></td> <td>理工</td> <td>北京</td> <td>98.50 </td> <td>中國研究型</td> <td>7星級</td> <td>世界知名高水平大學</td> </tr> <tr> <td>3</td> <td><a href="http://souky.eol.cn/HomePage/index_254.html">復旦大學</a></td> <td>綜合</td> <td>上海 </td> <td>82.79 </td> <td>中國研究型</td> <td>6星級</td> <td>中國頂尖大學</td> </tr>

從網頁原始碼中可以看到,需要的資訊位於<div class="conBox zhb" id="Tabs_zhb">標籤的子孫代標籤中的<tr>標籤下的各個<td>標籤中,因此寫下如下程式碼爬取,儲存並打印出相關資訊:

爬取程式碼編寫:

import requests
from bs4 import BeautifulSoup

#從網路上獲取大學排名網頁的內容
def getHTMLtext(url):
    try:
        r=requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return(r.text)
    except:
        return('')

#提取網頁中的資訊到合適資料結構
def fillUnivList(ulist, html):
    soup=BeautifulSoup(html, 'html.parser')
    item=soup.find_all(id='Tabs_zhb', class_='conBox zhb')
    #尋找標籤<div class="conBox zhb" id="Tabs_zhb">
    table=item[0].find_all('table')
    #尋找上個標籤下的<table>標籤
    for item1 in table:
        tr=item1.find_all('tr')
        #尋找<table>標籤下的各個<tr>標籤
        for item in tr[1:]:
        #去掉第一個<tr>標籤,從第二個開始遍歷
            aim=item.contents
            #<tr>標籤下的內容,也就是各個<td>標籤
            if len(aim)>10:
                ulist.append([aim[1].string,
                              aim[3].find_all('a')[0].string,
                              aim[9].string])
#利用資料結構展示輸出結構
def printUnivList(ulist, num):
    tplt='{0:^10}\t{1:{3}^10}\t{2:^10}'
    #輸出的結構佈置
    print(tplt.format('大學綜合排名', '學校所在地', '總得分', chr(12288)))
    #chr(12288)是中文空格填充字元
    for i in range(num):
        u=ulist[i]
        print(tplt.format(u[0], u[1], u[2], chr(12288)))

def main():
    unifo=[]
    url='http://www.eol.cn/html/ky/16phb/'
    html=getHTMLtext(url)
    fillUnivList(unifo, html)
    printUnivList(unifo, 40)#只列出40所學校的資訊
main()

執行結果:

  大學綜合排名          學校所在地            總得分    
    1              北京大學           100.00  
    2              清華大學           98.50   
    3              復旦大學           82.79   
    4              武漢大學           82.43   
    5              浙江大學           82.38   
    6             中國人民大學          81.98   
    7             上海交通大學          81.76   
    8              南京大學           80.43   
    9            國防科學技術大學         80.31   
    10             中山大學           76.46   
    11             吉林大學           76.01   
    12           中國科學技術大學         75.14   
    13            華中科技大學          75.12   
    14             四川大學           74.99   
    15            北京師範大學          74.75   
    16             南開大學           74.46   
    17            西安交通大學          73.56   
    18             中南大學           73.13   
    19             同濟大學           72.85   
    20             天津大學           72.81   
    21           哈爾濱工業大學          72.72   
    21             山東大學           72.72   
    23             廈門大學           72.23   
    24             東南大學           71.35   
    25           北京航空航天大學         70.58   
    26             東北大學           69.55   
    27             重慶大學           69.54   
    28            華東師範大學          69.52   
    29            大連理工大學          68.84   
    30            北京理工大學          68.72   
    31            華南理工大學          68.47   
    32            中國農業大學          68.05   
    33             湖南大學           68.03   
    34            華中師範大學          67.92   
    35            西北工業大學          67.77   
    36             蘭州大學           67.21   
    37            電子科技大學          66.88   
    38            武漢理工大學          66.60   
    39            中國地質大學          66.56   
    40            東北師範大學          66.50   

相關推薦

[筆記]python網路爬蟲一個簡單定向大學排名資訊示例

爬取的網站資訊 <div class="section"><a id="zhb" name="zhb"></a> <div class="title t2"><h1><img

python網路爬蟲股票資料定向

步驟說明 步驟1: 從東方財富網獲取股票列表 步驟2: 逐一獲取股票程式碼,並增加到百度股票的連結中,最後對這些連結進行逐個的訪問獲得股票的資訊  步驟3: 將結果儲存到檔案 程式碼實現 爬取當天一天的股票資料(上海,深圳交易所的) import reques

Python3網路爬蟲requests+mongodb+wordcloud 豆瓣影評並生成詞雲

Python版本: python3.+ 執行環境: Mac OS IDE: pycharm 一 前言 二 豆瓣網影評爬取 網頁分析 程式碼編寫 三 資料庫實裝 四

Python3網路爬蟲使用Beautiful Soup小說

本文是http://blog.csdn.net/c406495762/article/details/71158264的學習筆記 作者:Jack-Cui 博主連結:http://blog.csdn.net/c406495762 執行平臺: OSX Python版本: Pyth

Python網路爬蟲——Appuim+夜神模擬器得到APP課程資料

一、背景介紹 隨著生產力和經濟社會的發展,溫飽問題基本解決,人們開始追求更高層次的精神文明,開始願意為知識和內容付費。從2016年開始,內容付費漸漸成為時尚。 羅輯思維創始人羅振宇全力打造“得到APP”就是這樣一款優質的可以聽音訊、學通識課程、看電子書、看直播、記筆記的知識付費平臺,得到匯聚羅振宇、薛兆豐、樑

分享《精通Python網路爬蟲核心技術、框架與專案實戰》中文PDF+原始碼

下載:https://pan.baidu.com/s/1DqeZDF-MOAQ6hlNx2fq3JA 《精通Python網路爬蟲:核心技術、框架與專案實戰》中文PDF+原始碼PDF,306頁,帶書籤目錄。配套原始碼。 系統介紹Python網路爬蟲,注重實戰,涵蓋網路爬蟲原理、如何手寫Python網路爬蟲、

實戰 Python 網路爬蟲美團美食商家資訊和使用者評論

實戰 Python 網路爬蟲美團美食商家資訊和使用者評論作者簡介:Hyx,多年系統研發經驗,主要

Python網路爬蟲利用正則表示式豆瓣電影top250排行前10頁電影資訊

在學習了幾個常用的爬取包方法後,轉入爬取實戰。 爬取豆瓣電影早已是練習爬取的常用方式了,網上各種程式碼也已經很多了,我可能現在還在做這個都太土了,不過沒事,畢竟我也才剛入門…… 這次我還是利用正則表示式進行爬取,怎麼說呢,有人說寫正則表示式很麻煩,很多人都不

python爬蟲由淺入深9---定向股票資料資訊並儲存至本地檔案

技術路線:requests庫+bs4庫+re庫的整合使用 目標:獲得上交所和深交所所有股票的名稱和交易資訊 輸出:儲存至本地檔案 可選資料網路有:新浪股票和百度股票,,通過檢視網頁原始碼可知,新浪股票的資料是通過javascript指令碼獲取的,故通過以上方式無法解析 呃呃

python網路爬蟲(五):併發抓

在進行單個爬蟲抓取的時候,我們不可能按照一次抓取一個url的方式進行網頁抓取,這樣效率低,也浪費了cpu的資源。目前python上面進行併發抓取的實現方式主要有以下幾種:程序,執行緒,協程。程序不在的討論範圍之內,一般來說,程序是用來開啟多個spider,比如我

python爬蟲(1)——簡單網頁的資訊

獲取網上真實的語料資料,本身對Py的掌握不是很好,記錄下自己學習的過程,希望對你有幫助。 #python3 獲得taoeba的語料(不知道從哪翻到的這個網站,有各國語言的句子,訪問速度較慢 # -

python爬蟲使用selenium + ChromeDriver途家網

說明 本站(途家網https://www.tujia.com)通過常規抓頁面的方法不能獲取資料,可以使用selenium + ChromeDriver來獲取頁面資料。 0 指令碼執行順序與說明 0.1 先執行craw_url.py,獲得所有房子詳情頁的url

python網路爬蟲(11)近期電影票房或熱度資訊

目標意義 為了理解動態網站中一些資料如何獲取,做一個簡單的分析。 說明 思路,原始程式碼來源於:https://book.douban.com/subject/27061630/。 構造-下載器 構造分下載器,下載原始網頁,用於原始網頁的獲取,動態網頁中,js部分的響應獲取。 通過瀏覽器模仿,合理

一個簡單b站up下所有視訊的所有評論資訊爬蟲

心血來潮搞了一個簡單的爬蟲,主要是想知道某個人的b站賬號,但是你知道,b站在搜尋一個使用者時,如果這個使用者沒有投過稿,是搜不到的,,,這時就只能想方法搞到對方的mid,,就是 space.bilibili.com/9444976 後面的那一串數字。偶然看到這個人關注了某個主播,,想到可能這個人會回覆主播的視

爬蟲輸入網頁之後當前頁面的圖片和背景圖片,最後打包成exe

環境:py3.6 核心庫:selenium(考慮到通用性,js載入的網頁)、pyinstaller 顏色顯示:colors.py colors.py  用於在命令列輸出文字時,帶有顏色,可有可無。 # -*- coding:utf-8 -*-# # filename: prt_cmd_color.py

Python爬蟲——4.4爬蟲案例——requests和xpath招聘網站資訊

# -*-coding:utf-8 -*- ''' 使用requests模組進行資料採集,XPath進行資料篩選''' import requests from lxml import etree #

Python爬蟲入門——3.6 Selenium 淘寶資訊

上一節我們介紹了Selenium工具的使用,本節我們就利用Selenium跟Chrome瀏覽器結合來爬取淘寶相關男士羽絨服商品的資訊,當然你可以用相同的方法來爬取淘寶其他商品的資訊。我們要爬取羽絨服的價格、圖片連線、賣家、賣家地址、收貨人數等資訊,並將其儲存在csv中 fr

python3.x爬蟲大學排名資料

import requests from bs4 import BeautifulSoup import bs4 def getHTMLText(url): try: r = requests.get(url, timeout=30)

[筆記]R語言爬蟲入門——豆瓣新片資料

工具準備chrome瀏覽器+SelectorGadget外掛。SelectorGadget外掛:可以從這裡(http://selectorgadget.com)訪問和下載Selector Gadge的擴充套件程式。請確保跟隨該網站上的指示來安裝這個擴充套件程式。我已經完成了這

Python爬蟲入門筆記一個簡單爬蟲架構

      上次我們從對爬蟲進行簡單的介紹,今天我們引入一個簡單爬蟲的技術架構,解釋爬蟲技術架構中的幾個模組,對爬蟲先有一個整體的認知,方便對爬蟲的理解和後面的程式設計。      簡單的爬蟲架構:URL管理、網頁下載、網頁解析、輸出部分,如下圖:       1、UR