目录
- 粉丝福利送书:《Hadoop+spark+Python大数据处理从算法到实战》
- 点赞 收藏 ⭐留言 即可参与抽奖送书
- 下周三(10月7日)晚上20:00将会在【点赞区和评论区】抽一位粉丝送这本书~
- 详情请看第四点的介绍嗷~✨
- 1. ①
- 1.1 题目
- 1.2 思路
- 1.2.1 发送请求
- 1.2.2 解析网页
- 1.2.3 获取结点
- 1.2.4 数据输出
- 2. ②
- 2.1 题目
- 2.2 思路
- 2.2.1 发送请求
- 2.2.2 解析网页
- 2.2.3 获取结点
- 2.2.4 数据输出
- 3. ③
- 3.1 题目
- 3.2 思路
- 3.2.1 发送请求
- 3.2.2 解析网页
- 3.2.3 获取结点
- 3.2.4 数据输出
- 4. 福利送书
1.2 思路 1.2.1 发送请求用urllib和re库方法定向爬取给定网址的数据
- 引入库并且编写请求头
请求头是为了把爬虫包装成浏览器的正常访问。
import urllib.request
import re
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36',
}
- urllib和requests不同
urllib构造请求头和发送请求是分开的,而requests是封装在一起的。
url = "https://www.shanghairanking.cn/rankings/bcsr/2020/0812" request = urllib.request.Request(url, headers=header) # 构造请求头 r = urllib.request.urlopen(request) # 发送请求1.2.2 解析网页
- decode() 是为了解码成中文
- replace(’n’,’’) 是为了把回车去掉,方便后续的正则匹配。
html = r.read().decode().replace('n','')
1.2.3 获取结点
- 分析网页
我们很容易找到结点信息,然后观察节点信息的结构。
- 使用正则表达式获取总体的节点信息
ranking = re.findall("(.*?) ",html)
- 构造字典来存储数据
uList =[]
for k in ranking:
u = {
"rank":"",
"percent":"",
"name":"",
"socre":"",
}
name = re.findall("img alt=(.*?) onerror",k)
# 匹配出名字
ranking = re.findall(" (d+) ",k)
# 匹配出排名
socre = re.findall(" (.*?) ",k)
# 匹配出分数
u["rank"]=ranking[0]
u["percent"]=socre[0]
u["name"]=eval(name[0])
u["socre"]=socre[1]
uList.append(u)
1.2.4 数据输出
print("2020排名t全部层次t学校类型tt总分")
for u in uList:
print("{}tt{}tt{}tt{}tt".format(u["rank"],u["percent"],u["name"],u["socre"]))
2. ②
2.1 题目
用requests和Beautiful Soup库方法设计爬取网址的AQI实时报
2.2 思路
2.2.1 发送请求
- 导入库
import requests
from bs4 import BeautifulSoup
- 构造请求头
headers = {
'Connection': 'keep-alive',
'sec-ch-ua': '"Chromium";v="94", "Google Chrome";v="94", ";Not A Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,**;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Language': 'zh-CN,zh;q=0.9',
}
url = 'http://news.fzu.edu.cn/'
- 发送请求
urllib:
request = urllib.request.Request(url, headers=headers)
r = urllib.request.urlopen(request)
requests:
response = requests.get(url, headers=headers, verify=False)
3.2.2 解析网页
urllib:
html = r.read().decode().replace('n','')
requests:
html = response.content().replace('n','')
3.2.3 获取结点
- 注意一点img和src之间也可能会有匹配的,所以不能直接使用这种形式的正则。
- 正则匹配出所有的图片信息
imgList = re.findall(r', html, re.S)
3.2.4 数据输出
- 创建一个文件夹image进行保存
for i, img in enumerate(imgList):
img_url = "http://news.fzu.edu.cn" + img
print(f"正在保存第{i + 1}张图片 路径:{img_url}")
resp = requests.get(img_url)
with open(f'./image/{img.split("/")[-1]}', 'wb') as f:
f.write(resp.content)
4. 福利送书
点赞,评论这篇博文即可参与送书。
【参考文案】
学习人工智能,为什么要从基础的算法开始入门?学习大数据分析,为什么最后却讲解起了云计算?在“大数据”“云计算”“人工智能”被频繁提起的今天,你是否知道这三个名词间有什么关系?
如果你也有类似疑问,那一定要好好看看北京大学出版社倾力打造的新书——《Hadoop+spark+Python大数据处理从算法到实战》!本书围绕大数据处理的三大核心要素(算力+数据+算法),剖析大数据处理全过程,没有高冷的代码,也没有繁杂的公式,用“简单的方法”搞定大数据,带你用愉快的心情玩转AI!
【内容简介】
本书围绕新基建的云计算、大数据及人工智能进行介绍,分为以下五个部分。
第一部分,介绍大数据的概念与特点,以及典型的产业应用场景;
第二部分,介绍目前云计算中的一个重要的研究与应用领域——容器云,包含应用容器引擎Docker与容器编排工具Kubernetes;
第三部分,是大数据分析的基础,也是大数据分析技术的重点,包含Hadoop、Hbase、Hive、Spark的环境搭建及开发流程;
第四部分,是机器学习相关算法的应用,包含scikit-learn、SparkML、TensorFlow工具的使用;
第五部分,以实例介绍如何使用Spark机器学习库中的协同过滤算法,来实现一个基于Web的推荐系,以及介绍如何使用OpenCV与TensorFlow构建卷积神经网络来实现基于Web的人脸识别。
本书轻理论,重实践,适合有一定编程基础,且对云计算、大数据、机器学习、人工智能感兴趣,希望投身到新基建这一伟大事业的读者学习。同时,本书还可作为广大院校相关专业的教材和培训参考用书。
大数据系统相关栏目本月热门文章
- 1【Linux驱动开发】设备树详解(二)设备树语法详解
- 2别跟客户扯细节
- 3Springboot+RabbitMQ+ACK机制(生产方确认(全局、局部)、消费方确认)、知识盲区
- 4【Java】对象处理流(ObjectOutputStream和ObjectInputStream)
- 5【分页】常见两种SpringBoot项目中分页技巧
- 6一文带你搞懂OAuth2.0
- 7我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:虚拟机与Java虚拟机介绍
- 8【Spring Cloud】新闻头条微服务项目:FreeMarker模板引擎实现文章静态页面生成
- 9JavaSE - 封装、static成员和内部类
- 10树莓派mjpg-streamer实现监控及拍照功能调试
- 11用c++写一个蓝屏代码
- 12从JDK8源码中看ArrayList和LinkedList的区别
- 13idea 1、报错java: 找不到符号 符号: 变量 log 2、转换成Maven项目
- 14在openwrt使用C语言增加ubus接口(包含C uci操作)
- 15Spring 解决循环依赖
- 16SpringMVC——基于MVC架构的Spring框架
- 17Andy‘s First Dictionary C++ STL set应用
- 18动态内存管理
- 19我的创作纪念日
- 20Docker自定义镜像-Dockerfile
热门相关搜索
路由器设置
木托盘
宝塔面板
儿童python教程
心情低落
朋友圈
vim
双一流学科
专升本
我的学校
日记学校
西点培训学校
汽修学校
情书
化妆学校
塔沟武校
异形模板
西南大学排名
最精辟人生短句
6步教你追回被骗的钱
南昌大学排名
清朝十二帝
北京印刷学院排名
北方工业大学排名
北京航空航天大学排名
首都经济贸易大学排名
中国传媒大学排名
首都师范大学排名
中国地质大学(北京)排名
北京信息科技大学排名
中央民族大学排名
北京舞蹈学院排名
北京电影学院排名
中国戏曲学院排名
河北政法职业学院排名
河北经贸大学排名
天津中德应用技术大学排名
天津医学高等专科学校排名
天津美术学院排名
天津音乐学院排名
天津工业大学排名
北京工业大学耿丹学院排名
北京警察学院排名
天津科技大学排名
北京邮电大学(宏福校区)排名
北京网络职业学院排名
北京大学医学部排名
河北科技大学排名
河北地质大学排名
河北体育学院排名



