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

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

获取中国大学排名的爬虫实例,采用了requests和BeautifulSoup4函数库

中国大学排名网址:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html

功能描述:

输入:大学排名URL连接

输出:大学排名信息的屏幕输出(排名,大学名称,总分)

技术路线:equests和bs4

定向爬虫:仅对输入URL进行爬取,不扩展爬取

robots协议:

定向爬虫网址是否提供robots协议的约定,由于我们只访问了这个网站的一个链接,可以手动查看。

输入:http://www.zuihaodaxue.cn/robots.txt

发现网页不存在(如下图)

说明这个网站并没有通过robots协议对爬虫进行相应的限制,因此我们对大学排名的爬取是可以实现的。

程序结构设计:

步骤1:从网络上获取大学排名网页内容:def getHTMLText(url)

步骤2:提取网页内容中信息到合适的数据结构:def fillUnivList(ulist, html)

步骤3:利用数据结构展示并输出结果:def printUnivList(ulist, num)

完整代码:

 1 #CrawUnivRankingB.py
 2 import requests
 3 from bs4 import BeautifulSoup
 4 import bs4
 5
 6 # 将网页中的信息爬去出来并返回,,从网络中获取大学排名网页内容
 7 def getHTMLText(url):
 8     try:
 9         r = requests.get(url, timeout=30)
10         r.raise_for_status()#异常信息
11         r.encoding = r.apparent_encoding
12         return r.text
13     except:
14         return ""
15
16 # 提取html内容中信息到合适的数据结构中
17 def fillUnivList(ulist, html):
18     soup = BeautifulSoup(html, "html.parser")
19     for tr in soup.find(‘tbody‘).children:
20         # 检测tr标签的类型,如果tr标签的类型不是bs4类型
21         if isinstance(tr, bs4.element.Tag):
22             tds = tr(‘td‘)
23             ulist.append([tds[0].string, tds[1].string, tds[3].string])
24
25 # 利用数据结构展示并输出结果
26 def printUnivList(ulist, num):
27     tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}"
28     print(tplt.format("排名","学校名称","总分",chr(12288)))
29     for i in range(num):
30         u=ulist[i]
31         print(tplt.format(u[0],u[1],u[2],chr(12288)))
32
33 def main():
34     uinfo = []
35     url = ‘http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html‘
36     html = getHTMLText(url)
37     fillUnivList(uinfo, html)
38     printUnivList(uinfo, 20) #20个学校信息
39 main()

原文地址:https://www.cnblogs.com/cyt99/p/11958453.html

时间: 2024-11-06 11:37:45

中国大学排名(定向爬虫)实例的相关文章

中国大学排名定向爬虫

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,

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