Python爬虫练习:爬取800多所大学学校排名、星级等
时间:2022-07-26
本文章向大家介绍Python爬虫练习:爬取800多所大学学校排名、星级等,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
国内大学最新排名,北大反超,浙大仅第四,中科大跌至第八
时隔五年,“双一流”大学即将迎来首次大考,这也是继改变高校评断标准之后,第一次即将以官方对外发布,自然是引来了许多人的关注。最近,有许多不同机构发布的国内高校排名,但彼此之间的差异很大,网友之间的争议也很大。
项目目标
爬取高三网大学排名,并保存
目标网址
http://m.gaosan.com/gaokao/265440.html
基本环境配置
python 3.6 pycharm
爬虫代码
导入工具
1import requests
2import parsel3import csv
请求网页数据
1url = 'http://m.gaosan.com/gaokao/265440.html'
2
3headers = {
4 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
5}
6response = requests.get(url=url, headers=headers)
7response.encoding = response.apparent_encoding
爬取数据
1selector = parsel.Selector(response.text)
2trs = selector.css('#page tr')
3
4for tr in trs:
5 dit = {}
6 ranking = tr.css('td:nth-child(1)::text').get()
7 dit['名次'] = ranking
8 school = tr.css('td:nth-child(2)::text').get()
9 dit['学校名称'] = school
10 score = tr.css('td:nth-child(3)::text').get()
11 dit['综合得分'] = score
12 star = tr.css('td:nth-child(4)::text').get()
13 dit['星级排名'] = star
14 level = tr.css('td:nth-child(5)::text').get()
15 dit['办学层次'] = level
16 csv_writer.writerow(dit)
保存数据
1f = open('排名.csv', mode='a', encoding='utf-8', newline='')
2csv_writer = csv.DictWriter(f, fieldnames=['名次', '学校名称', '综合得分', '星级排名', '办学层次'])
3f.close()
运行代码,效果如下图
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- RocketMQ消息发送常见错误与解决方案
- 浅谈内核的Makefile、Kconfig和.config文件
- HTTPS 基本原理
- 自动化运维平台Spug测试
- 如何提升前端基建的效能价值?
- iTerm2安装和配置
- 最新最全的mutect2教程
- Flutter基础widgets教程-CupertinoAlertDialog篇
- Spring的Controller是单例还是多例?怎么保证并发的安全
- 用TypeScript装饰器实现一个简单的依赖注入
- PING问题解决方法_20190305
- 前端需要掌握的设计模式
- @vue/composition-api速成课(通俗易懂版)
- 新1期视频第14课und异常中断模式的bug以及对应的解决方法
- 第一课:linux设备树的引入与体验(基于linux4.19内核版本)