python爬虫分析大学排名_python爬虫(中国大学排名定向爬虫--解析)

右键单击 -> 查看网页源代码:

找到需要爬取的信息的位置:(可以Ctrl+F  搜索 "清华大学"  快速找到位置)

自诩观察网页源代码可以发现:

所有的大学信息都放在了

标签下

每个大学信息都放在了对应的

标签下

每个大学的每一条信息都放在了对应的

标签中

编写代码:

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#返回text

except:

return ""#异常返回 空

#提取出html代码中的大学信息存储到ulist列表中

def fillUnivList(ulist,html):

soup=BeautifulSoup(html,"html.parser")#解析 html

for tr in soup.find('tbody').children:#遍历tbody的孩子标签 每个tr代表一所大学

if isinstance(tr,bs4.element.Tag): #过滤掉非标签类型的元素

tds=tr('td')#等价于 tr.find_all('td')

#存储所有的td标签的内容

ulist.append([tds[0].string,tds[1].string,tds[3].string])#排名 名称 得分(tds[3]) 加入到列表中

#输出ulist列表中前num个大学信息

def printUnivList(ulist,num):

tplt="{0:^10}\t{1:^10}\t{2:^10}"#输出模板变量

print(tplt.format("排名","学校名称","总分",chr(12288)))#print的format格式化输出,并填充中文空格,使得界面更加美观

for i in range(num):

u=ulist[i]

print(tplt.format(u[0],u[1],u[2],chr(12288)))

#主函数

def main():

uinfo=[]

url="http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html"#将要爬取的url

#调用编写好的功能函数

html=getHTMLText(url)

fillUnivList(uinfo,html)

printUnivList(uinfo,20)

main()#调用主函数

程序运行结果:

本文地址:https://blog.csdn.net/qq_44786250/article/details/107128362

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

你可能感兴趣的:(python爬虫分析大学排名)