python中国大学排名爬虫写明详细步骤-Python爬虫 2020中国大学排名
爬取中国大学排名
request 获取 html
beautiful soup 解析网页
re 正则表达式匹配内容
新建并保存 excel
1
2
3
4
-*- codeing = utf-8 -*-
@Time : 2020/6/18 12:25
@Author : eahay
@File : 大学排名1.py
@Software : PyCharm
from bs4 import BeautifulSoup # 网页解析 获取数据
import re # 正则表达式 进行文字匹配
import urllib.request, urllib.error # 制定url 获取网页数据
import xlwt
def 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中国大学排名爬虫写明详细步骤-Python爬虫 2020中国大学排名相关推荐
- python中国大学排名爬虫写明详细步骤-Python爬虫——定向爬取“中国大学排名网”...
内容整理自中国大学MOOC--北京理工大学-蒿天-Python网络爬虫与信息提取 相关实战章节 我们预爬取的url如下 网页节选 在浏览器中读取网页源代码 可以 发现表格数据信息是直接写入HTML页面 ...
- python中国大学排名爬虫写明详细步骤-python中国大学排名爬虫
python 中国大学排名爬虫 首先,给一个最好大学网URL:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html, 点击这里进入 . 功能描述 ...
- python中国大学排名爬虫写明详细步骤-Python爬虫--2019大学排名数据抓取
Python爬虫--2019大学排名数据抓取 准备工作 输入:大学排名URL连接 输出:大学排名信息屏幕输出 所需要用到的库:requests,bs4 思路 获取网页信息 提取网页中的内容并放到数据结 ...
- python中国大学排名爬虫写明详细步骤-python网络爬虫入门实例:中国大学排名定向爬虫...
中国大学排名定向爬虫的 设计和实现 一.环境安装: 1.选择一个适合自己的IDE(以下代码用Jupyter Notebook编写) 2.打开cmd,安装requests库和beautifulsoup4 ...
- python中国大学排名爬虫写明详细步骤-Python之爬虫-中国大学排名
#!/usr/bin/env python # coding: utf-8 import bs4 import requests from bs4 import BeautifulSoup # 通过传 ...
- python中国大学排名爬虫写明详细步骤-python爬虫爬取2020年中国大学排名
from bs4 import BeautifulSoup # 网页解析 获取数据 import re # 正则表达式 进行文字匹配 import urllib.request, urllib.err ...
- python官网的sdk下载详细步骤-Python SDK(beta)
Python SDK(beta) 更新时间:2018-03-23 17:26:00 概述 本文结合Link Develop,详细介绍如何基于Python SDK,实现物联网设备的设备注册.属性上报.事 ...
- python中国大学排名爬虫写明详细步骤-【Python爬虫】从html里爬取中国大学排名...
from bs4 import BeautifulSoup import requests import bs4 #bs4.element.Tag时用的上 #获取网页页面HTML def getHTM ...
- python官网的sdk下载详细步骤-Python SDK
下载地址 IMM Service 的 Python SDK 让开发人员可以非常方便地使用 Python 操作阿里云智能媒体管理服务. 已经开源到github. 操作步骤 为快速开始使用 IMM Ser ...
最新文章
- ZJU-java进阶笔记 第六周(抽象与接口)
- Java项目构建打包规范,jenkins2.121.1构建java项目环境,一键打包发布
- C++的那些事:你真的了解引用吗
- 极虎病毒创造四个“之最”
- 【NOI2013模拟】棋盘游戏
- Spring Cloud Gateway 整合阿里 Sentinel网关限流实战
- Unity3d 游戏中集成Firebase 统计和Admob广告最新中文教程
- 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波17 - 锐化高通滤波器 - 梯度图像(罗伯特,Sobel算子)
- php /usr/lib/libjpeg.so.62,linux PHP的装配
- linux软件安装管理
- XML解析和创建的JAXB方式
- 2017.8.5 One-Dimensional 思考记录
- android edittext的监听,android editText 监听事件
- android点击另一个app,Android 怎么从一个APP中打开另外一个APP
- ASP.NET MVC 利用Razor引擎生成静态页
- 阐述Spring框架中Bean的生命周期?
- 手机号码编码规则是什么?
- linux wps 微软雅黑字体,微软雅黑字体下载,微软雅黑字体下载应用到wps
- 程序员直男也有的浪漫,快来给朋友制作一款定时微信推送服务吧
- Word2Vec算法和源码分析完整版
热门文章
- Log4net 用法 本地日志
- 【代码笔记】iOS-自定义弹出框
- react编译器jsxTransformer,babel
- 有关无人驾驶汽车的思考
- 自己录制的Linux视频教程
- USACO 2.3.3 罗马数字
- 学python语言用什么软件-对于自学python的初学者来说,应该使用什么编辑工具?...
- python学到什么程度可以做兼职-Python学到什么程度可以面试工作(解答一)
- python是一门什么课程-为什么一定要让孩子学会一门编程语言?
- 廖雪峰python教程pdf-爬虫:把廖雪峰的教程转换成 PDF 电子书