爬取中国大学排名

我们需要爬取2019年中国内地的大学排名,这里以物理学科为例,http://www.zuihaodaxue.cn/BCSR/wulixue2019.html

这个页面比较简单爬取难度不大,这里我们使用python的requests,bs4,BeautifulSoup库,关于BeatutifulSoup库的文档可以在这个网站查询https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/

先定义一个get函数来爬取相关信息

def get(url):
    try:
        header = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"}
        re = requests.get(url,headers=header)
        re.encoding = re.apparent_encoding
        return(re.text)
    except:
        print(‘爬取错误‘)
        return ‘‘

接着再定义一个函数将大学的排名存入列表中,从网站的源码中可以看出排名是在一个tbody标签中,而每一个大学都在一对tr标签中,每一个大学的相关信息都在一对td标签中,接着只要在tbody标签中取得每个tr标签,再从tr标签中获得td标签中内容存入一个列表中即可。

def fillUnivList(uList,html):
    soup = BeautifulSoup(html,‘html.parser‘)
    tbody = soup.find(‘tbody‘)
    count = 1
    for tr in tbody.children:
        if count < len(tbody)-1 and isinstance(tr,bs4.element.Tag):
            td = tr(‘td‘)
            uList.append([td[0].string,td[3].string,td[6].string])
        count = count + 1       

这里只拿取了第一行,第四行,第七行的内容。最后在main函数中调用即可

def main():
    url = ‘http://www.zuihaodaxue.cn/BCSR/wulixue2019.html‘
    html = get(url)
    uList = []
    fillUnivList(uList,html)

原文地址:https://www.cnblogs.com/mambakb/p/12237523.html

时间: 2024-07-30 15:43:03

爬取中国大学排名的相关文章

python爬取中国大学排名

教程来自:[Python网络爬虫与信息提取].MOOC. 北京理工大学 目标:爬取最好大学网前50名大学 代码如下: import requests from bs4 import BeautifulSoup import bs4 def getHTMLText(url): try: r = requests.get(url,timeout = 30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text exce

Python爬虫——定向爬取“中国大学排名网”

内容整理自中国大学MOOC——北京理工大学-蒿天-Python网络爬虫与信息提取 相关实战章节 我们预爬取的url如下 http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html 网页节选 在浏览器中读取网页源代码 可以 发现表格数据信息是直接写入HTML页面信息中,所以我们可以直接采取定向爬虫操作. 我们的整体设计思路如下: 1.从网络上获取大学排名网络内容 2.提取网页内容中信息到合适的数据结构 3.利用数据结构展示并输出结果 仔细观察可以发现

【Python爬虫】从html里爬取中国大学排名

from bs4 import BeautifulSoupimport requestsimport bs4 #bs4.element.Tag时用的上#获取网页页面HTMLdef getHTMLText(url): try: r = requests.request("get", url,timeout=30) r.raise_for_status() #如不是200报错 r.encoding = r.apparent_encoding #猜测编码然后赋予给解码 编码模式 demo =

使用selenium + chrome爬取中国大学Mooc网的计算机学科的所有课程链接

目的:使用selenium + chrome爬取中国大学Mooc网计算机学科的所有的课程链接列表 思路:找到每个分页的节点属性为class="m-course-list" 的div元素,再找到该元素下面的类属性为class = "u-clist f-bg f-cb f-pr j-href ga-click"的div元素的属性data-href的值,使用xpath获取. 难点:在网页源码里面,是看不到相关的课程链接信息,点击分页,发现地址栏的url一直都在变,但改变u

(参考)爬虫5-爬取中国大学排名情况

最好大学网 2018大学排名 功能描述: 输入:大学排名url链接 输出:大学排名信息的屏幕输出(排名,大学名称,总分) 技术路线:requests库和bs4库 定向爬虫:仅对输入的URL进行爬取,不扩展爬取 步骤: 1.输入url网址,查看源代码,发现信息都在HTML文件中 2.打开http://www.zuihaodaxue.cn/robots.txt,发现:not found,说明没有对爬取进行robots协议限制,可以进行爬取 3.程序的结构设计: 步骤1,从网络上获取大学排名网页内容,

python爬虫爬取最好大学排名

#-*- coding:utf-8 -*- #-Author-= JamesBen #Email: [email protected] import requests from bs4 import BeautifulSoup import bs4 #定义第一个函数得到网页源代码,并且可以进行稳定的运行 def Get_HTML(url): try : use = {'User-Agent': 'Mozilla/5.0'} #此行代码骗过服务器我们是使用浏览器进行访问的,防止有些网站对我们进行拦

中国大学排名(定向爬虫)实例

中国大学排名(定向爬虫)实例 获取中国大学排名的爬虫实例,采用了requests和BeautifulSoup4函数库 中国大学排名网址:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html 功能描述: 输入:大学排名URL连接 输出:大学排名信息的屏幕输出(排名,大学名称,总分) 技术路线:equests和bs4 定向爬虫:仅对输入URL进行爬取,不扩展爬取 robots协议: 定向爬虫网址是否提供robots协议的约定,由于我们只访问了这个

Python爬取中国天气网天气

Python爬取中国天气网天气 基于requests库制作的爬虫. 使用方法:打开终端输入 "python3 weather.py 北京(或你所在的城市)" 程序正常运行需要在同文件夹下加入一个"data.csv"文件,内容请参考链接:https://www.cnblogs.com/Rhythm-/p/9255190.html 运行效果: 源码: import sys import re import requests import webbrowser from

爬取耶鲁大学公开课

耶鲁大学(Yale University)是一所坐落于美国康涅狄格州纽黑文的私立研究型大学,创于1701年,初名“大学学院”(Collegiate School),是全美历史第三悠久的高等学府,亦为常春藤盟校成员之一.该校教授阵容.学术创新.课程设置和场馆设施等方面堪称一流.除了研究生课程之外,耶鲁同时也非常注重本科生教育.在各个大学排名榜单中,都一直名列前茅. 所以,我们今天的目标是爬取耶鲁大学公开课信息,并将它们加以保存. 首先,我们打开耶鲁大学公开课的首页进行分析.可以看到,在表格中有着许