作者:捕鱼达人2602914975 | 来源:互联网 | 2023-05-19 02:02
Day02笔记
1、解析模块
1、数据的分类
1、结构化数据
特点:有固定的格式,如:HTML、XML
2、非结构化数据
示例:图片、音频、视频,这类数据以二进制方式存储
2、正则表达式 re
1、使用流程
1、创建编译对象 :p = re.compile('正则表达式')
2、对字符串进行匹配 :r = p.match('字符串')
3、获取匹配结果 :r.group()
2、常用方法
1、match(html) : 字符串开头的第1个,返回对象
2、search(html): 从开始往后找,匹配第1个,返回对象
3、findall(html) : 所有全部匹配,返回列表
3、表达式
. : 匹配任意字符(不包括\n)
\d : 数字
\s : 空白字符
\S : 非空白字符
\w : 字母、数字、_
[...] : 包含[]内容 :A[BCD]E --> ABE ACE ADE
* : 0次或多次
? : 0次或1次
+ : 1次或多次
{m}: m次
{m,n} : m-n次, AB{1,3}C ->ABC ABBC ABBBC
4、贪婪匹配和非贪婪匹配
贪婪匹配(.*) : 在整个表达式匹配成功的前提下,尽可能多的匹配*
非贪婪匹配(.*?) :在整个表达式匹配成功的前提下,尽可能少的匹配*
见 :01_贪婪匹配和非贪婪匹配示例.py
5、findall()的分组
见 :02_findall分组示例.py
6、练习 见:03_findall分组练习.py
Two tigers two tigers run fast
Small while rabbit white and white
第1步:
[("tiger","Two tigers .."),("rabbit","Small rabbit...")]
第2步:
动物名称:tiger
动物描述:Two tigers ...
3、内涵段子脑筋急转弯抓取
见:04_内涵8脑筋急转弯.py
网址 :http://www.neihan8.com
1、步骤
1、找URL规律
第1页:https://www.neihan8.com/njjzw/
第2页:https://www.neihan8.com/njjzw/index_2.html
2、用正则匹配出题目和答案
3、写代码
1、发请求
2、用正则解析
.*?class="desc">(.*?)
3、保存
4、猫眼电影top100榜单,存到csv文件里
见 :06_猫眼电影top100.py
网址 :猫眼电影 - 榜单 - top100榜
目标 :抓取电影名、主演、上映时间
1、知识点
1、csv模块的使用流程
1、打开csv文件
with open("测试.csv","a",newline="") as f:
2、初始化写入对象
writer = csv.writer(f)
3、写入数据(列表)
writer.writerow([列表])
2、准备工作
1、找URL规律
第1页:http://maoyan.com/board/4?offset=0
第2页:http://maoyan.com/board/4?offset=10
第n页:offset=(n-1)*10
2、写正则表达式
.*?title="(.*?)".*?class="star">(.*?).*?class="releasetime">(.*?)
3、写代码
2、数据持久化存储
1、存入mongodb数据库(pymongo模块回顾)
# 创建连接对象
conn = pymongo.MongoClient("localhost",27017)
# 创建数据库对象
db = conn.库名
# 创建集合对象
myset = db.集合名
# 插入数据
myset.insert(字典)
>>>show dbs
>>>use 库名
>>>show collections
>>>db.集合名.find().pretty()
>>>db.dropDatabase()
>>>db.集合名.count()
2、存入MySQL数据库(pymysql模块回顾)
3、requests模块
1、安装
Anaconda Prompt : conda install requests
Windows cmd : python -m pip install requests
## python -m 是以管理员身份执行pip安装命令
Ubuntu : sudo pip3 install requests
2、常用方法
1、requests.get(url,headers=headers)
发起请求,并获取响应对象
2、响应对象res的属性
1、res.text : 字符串
2、res.content : 字节流
3、res.encoding: 指定字符编码 (ISO-8859-1)
## res.encoding = "utf-8"
4、res.status_code : 响应码
5、res.url : 实际数据的URL
3、get()使用场景
1、没有查询参数
res = requests.get(url,headers=headers)
2、有查询参数(params)
res = requests.get(url,params=params,headers=headers)
推荐阅读
-
本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ...
[详细]
蜡笔小新 2024-11-22 16:43:30
-
Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ...
[详细]
蜡笔小新 2024-11-22 18:00:41
-
-
本文详细介绍了 Vue CLI 的基础使用方法,包括环境搭建、项目创建、常见配置及路由管理等内容,适合初学者快速掌握 Vue 开发环境。 ...
[详细]
蜡笔小新 2024-11-22 14:48:35
-
本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ...
[详细]
蜡笔小新 2024-11-22 18:44:25
-
Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ...
[详细]
蜡笔小新 2024-11-22 18:18:57
-
尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ...
[详细]
蜡笔小新 2024-11-22 15:30:54
-
本文探讨了如何在 Spring MVC 框架下,通过自定义注解和拦截器机制来实现细粒度的权限管理功能。 ...
[详细]
蜡笔小新 2024-11-22 14:35:02
-
在撰写文章或教程时,GIF动态图能够有效地传达信息。对于Windows用户而言,ScreenToGif是一款非常实用的工具。而在Ubuntu系统中,用户同样拥有多种选择来创建GIF动画,本文将重点介绍两款录屏工具——Byzanz和Peek。 ...
[详细]
蜡笔小新 2024-11-22 13:24:34
-
本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ...
[详细]
蜡笔小新 2024-11-21 21:42:59
-
本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ...
[详细]
蜡笔小新 2024-11-21 20:16:59
-
binlog2sql,你该知道的数据恢复工具 ...
[详细]
蜡笔小新 2024-11-22 18:58:43
-
本文介绍了如何使用Node.js通过两种不同的方法连接MongoDB数据库,包括使用MongoClient对象和连接字符串的方法。每种方法都有其特点和适用场景,适合不同需求的开发者。 ...
[详细]
蜡笔小新 2024-11-22 18:56:55
-
动态GIF图可以有效增强数据表达的直观性和吸引力。本文将详细介绍如何利用Matlab软件生成动态GIF图,涵盖基本代码实现与高级应用技巧。 ...
[详细]
蜡笔小新 2024-11-22 16:52:32
-
本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ...
[详细]
蜡笔小新 2024-11-22 13:21:24
-
本文详细介绍了如何在最新版本的Xcode中重命名iOS项目,包括项目名称、应用名称及相关的文件夹和配置文件。通过本文,开发者可以轻松完成项目的重命名工作。 ...
[详细]
蜡笔小新 2024-11-22 13:16:52
-
捕鱼达人2602914975
这个家伙很懒,什么也没留下!