中国大学排名定向爬虫

import requests
from bs4 import BeautifulSoup
import bs4                                                       #Tag类型判断是需要用到这里的库

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‘)
    for tr in soup.find(‘tbody‘).children:                        #所有的排名信息包含在这个tbody的标签中
        if isinstance(tr, bs4.element.Tag):                       #每个大学的排名信息单独一个独立的tr标签中,它是tbody标签的子标签
            tds = tr(‘td‘)
            ulist.append([tds[0].string, tds[1].string, tds[3].string])

def printUnivList(ulist, num):
    tplt=‘{0:^10}\t{1:{3}^10}\t{2:^10}‘                           #{3},代表用format的第四个变量填充没用完的位置 即chr(12288)
    print(tplt.format(‘排名‘,‘学校名称‘,‘分数‘,chr(12288)))
    for i in range(num):                                          #ulist是一个二维数组
        u = ulist[i]
        print(tplt.format(u[0],u[1],u[2],chr(12288)))

def main():
    uinfo = []
    url = ‘http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html‘
    html = getHTMLText(url)
    fillUnivList(uinfo, html)
    num = 20
    printUnivList(uinfo, num)

main()

requests库和bs4库共同作用。结构形式:获取网页内容——解析网页并提取信息——输出信息

时间: 2024-08-28 09:26:34

中国大学排名定向爬虫的相关文章

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

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

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

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

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

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

python爬虫入门---第二篇:获取2019年中国大学排名

我们需要爬取的网站:最好大学网 我们需要爬取的内容即为该网页中的表格部分: 该部分的html关键代码为: 其中整个表的标签为<tbody>标签,每行的标签为<tr>标签,每行中的每个单元格的标签为<td>标签,而我们所需的内容即为每个单元格中的内容. 因此编写程序的大概思路就是先找到整个表格的<tbody>标签,再遍历<tbody>标签下的所有<tr>标签,最后遍历<tr>标签下的所有<td>标签, 我们用二维

爬取:中国大学排名

功能:输入大学排名URL链接 输出:大学排名信息的屏幕输出(排名,大学名称,总分) 技术路线:requests-bs4 定向爬虫:进队输入的URL进行爬去,不扩展爬取. 确定是否是:动态脚本信息 找所需要的信息:ctrl+f,查找 确定有无robots协议:http://www.zuihaodaxue.cn/robots.txt,404,不存在. 程序结构设计: 从网络上获取大学排名网页内容,定义一个函数getHTMLText(),其功能是..... 提取网页内容中信息到合适的数据结构,定义第二

爬取中国大学排名

我们需要爬取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): tr

【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 =

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

2014年QS世界大学排名

新浪教育[微博]讯 近日2014QS世界大学排行榜发布,榜单前十强均为英美名校.其中麻省理工大学以绝对优势位居榜首:英国剑桥大学及帝国理工学院并列排名第二:哈佛大学较去年而言名次略微下降,跌至第四. 就中国内地大学来看,27所大学进入2014QS榜单,清华[微博]大学[微博]第一次以排名47位登顶QS世界大学排名中中国大陆大学之首,北京大学[微博]以排名第57位紧随其后.除此外,香港大学[微博]以排名第28位的好成绩位居该榜单里中国大学排名之首. 出处:http://edu.sina.com.c