python如何爬取2020年中国大学排名
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇内容介绍了"python如何爬取2020年中国大学排名"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所
千家信息网最后更新 2024年09月22日python如何爬取2020年中国大学排名
本篇内容介绍了"python如何爬取2020年中国大学排名"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
爬取中国大学排名
request 获取 htmlbeautiful soup 解析网页re 正则表达式匹配内容新建并保存 excel
from bs4 import BeautifulSoup # 网页解析 获取数据import re # 正则表达式 进行文字匹配import urllib.request, urllib.error # 制定url 获取网页数据import xlwtdef main(): baseurl = "http://m.gaosan.com/gaokao/265440.html" # 1爬取网页 datalist = getData(baseurl) savepath = "中国大学排名.xls" saveData(datalist,savepath)# 正则表达式paiming = re.compile(r'(.*) .* .* .* .* ') # 创建超链接正则表达式对象,表示字符串模式,规则xuexiao = re.compile(r'.* (.*) .* .* .* ')defen = re.compile(r'.* .* (.*) .* .* ')xingji = re.compile(r'.* .* .* (.*) .* ')cengci = re.compile(r'.* .* .* .* (.*) ')# 爬取网页def getData(baseurl): datalist = [] html = askURL(baseurl) # 保存获取到的网页源码 # print(html) #【逐一】解析数据 (一个网页就解析一次) soup = BeautifulSoup(html, "html.parser") # soup是解析后的树形结构对象 for item in soup.find_all('tr'): # 查找符合要求的字符串形成列表 # print(item) #测试查看item全部 data = [] # 保存一个学校的所有信息 item = str(item) #排名 paiming1 = re.findall(paiming, item) # re正则表达式查找指定字符串 0表示只要第一个 前面是标准后面是找的范围 # print(paiming1) if(not paiming1): pass else: print(paiming1[0]) data.append(paiming1) if(paiming1 in data): #学校名字 xuexiao1 = re.findall(xuexiao, item)[0] # print(xuexiao1) data.append(xuexiao1) #得分 defen1 = re.findall(defen, item)[0] # print(defen1) data.append(defen1) #星级 xingji1 = re.findall(xingji, item)[0] # print(xingji1) data.append(xingji1) #层次 cengci1 = re.findall(cengci, item)[0] # print(cengci1) data.append(cengci1) # print('-'*80) datalist.append(data) # 把处理好的一个学校信息放入datalist中 return datalist# 得到指定一个url网页信息内容def askURL(url): # 我的初始访问user agent head = { # 模拟浏览器头部信息,向豆瓣服务器发送消息 伪装用的 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36" } # 用户代理表示告诉豆瓣服务器我们是什么类型的机器--浏览器 本质是告诉浏览器我们可以接受什么水平的文件内容 request = urllib.request.Request(url, headers=head) # 携带头部信息访问url # 用request对象访问 html = "" try: response = urllib.request.urlopen(request) # 用urlopen传递封装好的request对象 html = response.read().decode("utf-8") # read 读取 可以解码 防治乱码 # print(html) except urllib.error.URLError as e: if hasattr(e, "code"): print(e.code) # 打印错误代码 if hasattr(e, "reason"): print(e.reason) # 打印错误原因 return html# 3保存数据def saveData(datalist, savepath): book = xlwt.Workbook(encoding="utf-8", style_compression=0) # 创建workbook对象 样式压缩效果 sheet = book.add_sheet('中国大学排名', cell_overwrite_ok=True) # 创建工作表 一个表单 cell覆盖 for i in range(0, 640): print("第%d条" % (i + 1)) data = datalist[i] # print(data) for j in range(0, 5): # 每一行数据保存进去 sheet.write(i , j, data[j]) # 数据 book.save(savepath) # 保存数据表#主函数if __name__ == "__main__": # 当程序执行时 # #调用函数 程序执行入口 main() # init_db("movietest.db") print("爬取完毕!")
具体实现效果如下
"python如何爬取2020年中国大学排名"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
网页
数据
信息
内容
对象
正则
表达式
大学
字符
字符串
学校
浏览器
中国
中国大学
浏览
国大学
国大
函数
头部
效果
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
闵行区机电软件开发设计规范
软件开发中间体
软件开发的第一要义是可信
软件开发与建造客机有什么区别
网络安全特性分别是
工厂运输数据库
南京管理系统软件开发
西藏党员量化积分管理软件开发
mysql数据库连接过程
服务器维护端口
网络技术基础知识视频
中国省市县数据库
打印机服务器网络扫描版
java数据库灾备方案
数据库磁盘大小配置
网络技术工作描述
看护苗网络安全有感
数据库什么是构架
网络安全对于反恐怖主义的意义
网络安全威胁两大类
软件开发面试有机试吗
长宁区正规软件开发零售价格
网络安全报班多少钱
重庆物保宝网络技术
女生做软件测试还是软件开发
网络安全围墙原理
上海要玩网络技术
电商平台app软件开发费用
圣博润网络安全龙头
华为应用市场服务器在哪