爬取中国大学排名

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中国大学排名相关推荐

  1. python中国大学排名爬虫写明详细步骤-Python爬虫——定向爬取“中国大学排名网”...

    内容整理自中国大学MOOC--北京理工大学-蒿天-Python网络爬虫与信息提取 相关实战章节 我们预爬取的url如下 网页节选 在浏览器中读取网页源代码 可以 发现表格数据信息是直接写入HTML页面 ...

  2. python中国大学排名爬虫写明详细步骤-python中国大学排名爬虫

    python 中国大学排名爬虫 首先,给一个最好大学网URL:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html, 点击这里进入 . 功能描述 ...

  3. python中国大学排名爬虫写明详细步骤-Python爬虫--2019大学排名数据抓取

    Python爬虫--2019大学排名数据抓取 准备工作 输入:大学排名URL连接 输出:大学排名信息屏幕输出 所需要用到的库:requests,bs4 思路 获取网页信息 提取网页中的内容并放到数据结 ...

  4. python中国大学排名爬虫写明详细步骤-python网络爬虫入门实例:中国大学排名定向爬虫...

    中国大学排名定向爬虫的 设计和实现 一.环境安装: 1.选择一个适合自己的IDE(以下代码用Jupyter Notebook编写) 2.打开cmd,安装requests库和beautifulsoup4 ...

  5. python中国大学排名爬虫写明详细步骤-Python之爬虫-中国大学排名

    #!/usr/bin/env python # coding: utf-8 import bs4 import requests from bs4 import BeautifulSoup # 通过传 ...

  6. python中国大学排名爬虫写明详细步骤-python爬虫爬取2020年中国大学排名

    from bs4 import BeautifulSoup # 网页解析 获取数据 import re # 正则表达式 进行文字匹配 import urllib.request, urllib.err ...

  7. python官网的sdk下载详细步骤-Python SDK(beta)

    Python SDK(beta) 更新时间:2018-03-23 17:26:00 概述 本文结合Link Develop,详细介绍如何基于Python SDK,实现物联网设备的设备注册.属性上报.事 ...

  8. python中国大学排名爬虫写明详细步骤-【Python爬虫】从html里爬取中国大学排名...

    from bs4 import BeautifulSoup import requests import bs4 #bs4.element.Tag时用的上 #获取网页页面HTML def getHTM ...

  9. python官网的sdk下载详细步骤-Python SDK

    下载地址 IMM Service 的 Python SDK 让开发人员可以非常方便地使用 Python 操作阿里云智能媒体管理服务. 已经开源到github. 操作步骤 为快速开始使用 IMM Ser ...

最新文章

  1. ZJU-java进阶笔记 第六周(抽象与接口)
  2. Java项目构建打包规范,jenkins2.121.1构建java项目环境,一键打包发布
  3. C++的那些事:你真的了解引用吗
  4. 极虎病毒创造四个“之最”
  5. 【NOI2013模拟】棋盘游戏
  6. Spring Cloud Gateway 整合阿里 Sentinel网关限流实战
  7. Unity3d 游戏中集成Firebase 统计和Admob广告最新中文教程
  8. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波17 - 锐化高通滤波器 - 梯度图像(罗伯特,Sobel算子)
  9. php /usr/lib/libjpeg.so.62,linux PHP的装配
  10. linux软件安装管理
  11. XML解析和创建的JAXB方式
  12. 2017.8.5 One-Dimensional 思考记录
  13. android edittext的监听,android editText 监听事件
  14. android点击另一个app,Android 怎么从一个APP中打开另外一个APP
  15. ASP.NET MVC 利用Razor引擎生成静态页
  16. 阐述Spring框架中Bean的生命周期?
  17. 手机号码编码规则是什么?
  18. linux wps 微软雅黑字体,微软雅黑字体下载,微软雅黑字体下载应用到wps
  19. 程序员直男也有的浪漫,快来给朋友制作一款定时微信推送服务吧
  20. Word2Vec算法和源码分析完整版

热门文章

  1. Log4net 用法 本地日志
  2. 【代码笔记】iOS-自定义弹出框
  3. react编译器jsxTransformer,babel
  4. 有关无人驾驶汽车的思考
  5. 自己录制的Linux视频教程
  6. USACO 2.3.3 罗马数字
  7. 学python语言用什么软件-对于自学python的初学者来说,应该使用什么编辑工具?...
  8. python学到什么程度可以做兼职-Python学到什么程度可以面试工作(解答一)
  9. python是一门什么课程-为什么一定要让孩子学会一门编程语言?
  10. 廖雪峰python教程pdf-爬虫:把廖雪峰的教程转换成 PDF 电子书