Python怎么爬取中国大学排名并且保存到excel中
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,Python怎么爬取中国大学排名并且保存到excel中,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言今天发的是pyt
千家信息网最后更新 2025年01月24日Python怎么爬取中国大学排名并且保存到excel中
Python怎么爬取中国大学排名并且保存到excel中,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
前言
今天发的是python爬虫爬取中国大学排名,并且保存到excel中,当然这个代码很简单,我用了半小时就写完了,我的整体框架非常清晰,可以直接拿去用,也希望有小白可以学习到关于爬虫的一些知识,当然我也只是在学习中,有不好的地方还麻烦大佬们指正!谢谢!
爬取中国大学排名
URL : http://m.gaosan.com/gaokao/265440.html
request 获取 htmlbeautiful soup 解析网页re 正则表达式匹配内容新建并保存 excel
1from bs4 import BeautifulSoup # 网页解析 获取数据 2import re # 正则表达式 进行文字匹配 3import urllib.request, urllib.error # 制定url 获取网页数据 4import xlwt 5 6def main(): 7 baseurl = "http://m.gaosan.com/gaokao/265440.html" 8 # 1爬取网页 9 datalist = getData(baseurl) 10 savepath = "中国大学排名.xls" 11 saveData(datalist,savepath) 12 13# 正则表达式 14paiming = re.compile(r'(.*) .* .* .* .* ') # 创建超链接正则表达式对象,表示字符串模式,规则 15xuexiao = re.compile(r'.* (.*) .* .* .* ') 16defen = re.compile(r'.* .* (.*) .* .* ') 17xingji = re.compile(r'.* .* .* (.*) .* ') 18cengci = re.compile(r'.* .* .* .* (.*) ') 19 20# 爬取网页 21def getData(baseurl): 22 datalist = [] 23 html = askURL(baseurl) # 保存获取到的网页源码 24 # print(html) 25 #【逐一】解析数据 (一个网页就解析一次) 26 soup = BeautifulSoup(html, "html.parser") # soup是解析后的树形结构对象 27 for item in soup.find_all('tr'): # 查找符合要求的字符串形成列表 28 # print(item) #测试查看item全部 29 data = [] # 保存一个学校的所有信息 30 item = str(item) 31 #排名 32 paiming1 = re.findall(paiming, item) # re正则表达式查找指定字符串 0表示只要第一个 前面是标准后面是找的范围 33 # print(paiming1) 34 if(not paiming1): 35 pass 36 else: 37 print(paiming1[0]) 38 data.append(paiming1) 39 if(paiming1 in data): 40 #学校名字 41 xuexiao1 = re.findall(xuexiao, item)[0] 42 # print(xuexiao1) 43 data.append(xuexiao1) 44 #得分 45 defen1 = re.findall(defen, item)[0] 46 # print(defen1) 47 data.append(defen1) 48 #星级 49 xingji1 = re.findall(xingji, item)[0] 50 # print(xingji1) 51 data.append(xingji1) 52 #层次 53 cengci1 = re.findall(cengci, item)[0] 54 # print(cengci1) 55 data.append(cengci1) 56 # print('-'*80) 57 datalist.append(data) # 把处理好的一个学校信息放入datalist中 58 return datalist 59 60 61# 得到指定一个url网页信息内容 62def askURL(url): 63 # 我的初始访问user agent 64 head = { # 模拟浏览器头部信息,向豆瓣服务器发送消息 伪装用的 65 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36" 66 } 67 # 用户代理表示告诉豆瓣服务器我们是什么类型的机器--浏览器 本质是告诉浏览器我们可以接受什么水平的文件内容 68 request = urllib.request.Request(url, headers=head) # 携带头部信息访问url 69 # 用request对象访问 70 html = "" 71 try: 72 response = urllib.request.urlopen(request) # 用urlopen传递封装好的request对象 73 html = response.read().decode("utf-8") # read 读取 可以解码 防治乱码 74 # print(html) 75 except urllib.error.URLError as e: 76 if hasattr(e, "code"): 77 print(e.code) # 打印错误代码 78 if hasattr(e, "reason"): 79 print(e.reason) # 打印错误原因 80 return html 81 82 83# 3保存数据 84def saveData(datalist, savepath): 85 book = xlwt.Workbook(encoding="utf-8", style_compression=0) # 创建workbook对象 样式压缩效果 86 sheet = book.add_sheet('中国大学排名', cell_overwrite_ok=True) # 创建工作表 一个表单 cell覆盖 87 for i in range(0, 640): 88 print("第%d条" % (i + 1)) 89 data = datalist[i] 90 # print(data) 91 for j in range(0, 5): # 每一行数据保存进去 92 sheet.write(i , j, data[j]) # 数据 93 book.save(savepath) # 保存数据表 94 95 96#主函数 97if __name__ == "__main__": # 当程序执行时 98 # #调用函数 程序执行入口 99 main()100 # init_db("movietest.db")101 print("爬取完毕!")
具体实现效果如下
一共600多条数据
具体的过程在代码中也已经清晰的标注好备注,如有不懂可以留言,如果改进的地方,麻烦大佬们指正,谢谢!
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
数据
网页
大学
中国
中国大学
信息
对象
正则
表达式
内容
代码
字符
字符串
学校
浏览器
学习
浏览
函数
地方
头部
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
悦百网络技术有限公司
大学生网络安全标语
深圳市讯帮网络技术有限公司
利津软件开发培训
进口工业级串口服务器公司
数据库的4个组成
临沂安卓软件开发公司
大专计算机网络技术学校招生
头条抖音用的什么云服务器
什么是服务器开发
深圳市可搜网络技术
上古卷轴5连接服务器
通过学习网络安全法心得体会
程序员软件开发和实际工资
计算机网络技术专业能干什么
属于原始数据库
小爱同学连接不到服务器
网络安全保护中最有效的方式
软件开发商tg7
网络安全的基础
大学生网络安全标语
启动服务器的顺序图
软件开发实施工作内容与要求
网络爬虫可以爬出数据库吗
2678v3cpu是服务器的吗
一个数据库只能一个人使用吗
青海天驱服务器云服务器
扫描枪工业应用用什么软件开发
服务器和工作站平台
利用无线网络技术打造美好城市