爬虫学习04-正则解析模块re
一、re模块使用流程
1.方法一
r_list=re.findall('正则表达式',html,re.s)
2.方法二(常用)
#创建正则编译对象
pattern=re.compile('正则表达式',re.s)
re_list=pattern.findall(html)
二、正则表达表达式元字符
元字符 | 含义 |
. | 任意一个字符(不包括\n) |
\d | 一个数字 |
\s | 空白字符 |
\S | 非空白字符 |
[] | 包含[]内容 |
* | 出现0次或多次 |
+ | 出现1次或多次 |
例如
写出一个匹配任意一个字符的正则表达式
import re
pattern=re.compile('.',re.s)
三、贪婪匹配和非贪婪匹配
1.贪婪匹配 : .*
在整个表达式匹配成功的情况下,尽可能多的匹配
2.非贪婪匹配: .*?
在整个表达式匹配成功的情况下,尽可能少的匹配
import rehtml='''
<html><div><p>九霄龙吟惊天变</p></div><div><p>风云际会浅水游</p></div></html>'''
#贪婪匹配
#pattern =re.compile('<div><p>.*</p></div>',re.S)
#r_list=pattern.findall(html)
#print(r_list)#非贪婪匹配
pattern = re.compile('<div><p>(.*?)</p></div>',re.S)
r_list=pattern.findall(html)
print(r_list)
四、正则表达式分组
1.在网页中,想要什么内容,·就加()
2.先按整体正则匹配,然后再提取分组()中的内容
如果有2个及以上分组(),则结果中以元组形式显示[(),(),()]
案例 1
从以下html代码啊结构中完成如下内容信息的提取
1、[(‘Tiger’),'Two...',(‘Rabbit’,‘Small...’)]
2.
动物名称:Tiger
动物描述:Two tigers two tigers run fast
动物名称:Rabbit
动物描述:Small white rabbit white and white
页面结构如下
<div class="animal"><p class="name"><a title="Tiger"></a></p><p class="content">Two tigers two tigers run fast</p>
</div><div class="animal"><p class="name"><a title="Rabbit"></a></p><p class="content">Small white rabbit white and white</p></div>
见re_groups
import re
html='''
<html>
<div class="animal"><p class="name"><a title="Tiger"></a></p><p class="content">Two tigers two tigers run fast</p>
</div><div class="animal"><p class="name"><a title="Rabbit"></a></p><p class="content">Small white rabbit white and white</p>
</div>
</html>
'''pattern=re.compile('<div class="animal">.*?title="(.*?)".*?''class="content">(.*?)</p>',re.S)
r_list=pattern.findall(html)for rt in r_list:print('动物名称',rt[0].strip())print('动物描述', rt[1].strip())
结果展示:
字符串常用方法:
strip() :去除空格
split(): 分割
replace:替换
练习
爬取猫眼电影信息:猫眼电影-榜单-top100榜
第一步
猫眼电影-第1页.html
猫眼电影-第2页.html
..........
第二步
1.提取数据:电影名称、主演、上映时间
2.先打印输出,再写入到本地
总结
请求模块(urllib.request)
request=request.Request(url,headers)
response=request.urlopen(request)
html=res.read().decode('utf-8')
编码模块(urllib.parse)
urlencode({dict})
urlencode({'wd':'美女',‘pn’:20})
解析模块(re)
爬虫学习04-正则解析模块re相关推荐
- Python爬虫学习第二章-1-requests模块简介
Python爬虫学习第二章-1-requests模块简介 这一章主要是介绍requests模块的相关知识以及使用 1.requests模块简介: 概述:是python中原生的一款基于网络请求的模块 ...
- 数据解析学习笔记(正则解析、bs4解析、xpath解析)
聚焦爬虫:爬取页面中指定的页面内容. - 编码流程: - 指定url - 发起请求 - 获取响应数据 - 数据解析 - 持久化存储 数据解析分类: 正则 bs4 xpath(***) 数据解析原理概述 ...
- Python爬虫编程4——数据解析模块之bs4
目录 一.bs4简介 1.基本概念 2.源码分析 二.bs4的使用 1.快速开始 2.bs4的对象种类 三.遍历文档树 遍历子节点 1.contents children desc ...
- 【python爬虫学习篇】请求模块urllib3
目录 1.urllib3 1.1,发送网络请求 1.1.2,GET请求 1.1.3,POST请求 1.1.4,重试请求和处理响应内容 1.1.5,JSON信息 1.2,复杂请求的发送 1.2.1,设置 ...
- 利用python爬虫(part16)--json解析模块
学习笔记 json解析模块 json.loads 作用 把json格式的字符串转为Python数据类型. 语法 res = requests.get(url=url, headers=headers) ...
- python爬虫正则解析及xpath解析,lxml解析库
正则解析模块re re模块使用流程 方法一 r_list=re.findall('正则表达式',html,re.S) 方法二 # 1.创建正则编译对象 pattern = re.compile('正则 ...
- python爬虫学习笔记-网络爬虫的三种数据解析方式
爬虫的分类 1.通用爬虫:通用爬虫是搜索引擎(Baidu.Google.Yahoo等)"抓取系统"的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份 ...
- Python爬虫学习第十一天---pymongo模块使用
Python爬虫学习第十一天-pymongo模块使用 一.安装pymongo模块 python3 -m pip install pymongo 二.pymongo模块的使用 1.配置基础项 user ...
- 一木.溪桥学爬虫-04:requests模块
一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-04:requests模块.cookie.session 日期:2021年1月31日 学习 ...
最新文章
- 找不到包含 OwinStartupAttribute 的程序集
- 普华永道:人工智能将重塑职位格局并与物联网合并
- JSON字符串通过response下载保存
- mybatis对mapper.xml的解析(一)
- OpenCV中图像垂直拼接函数vconcat的使用
- Java 远程通讯技术及原理分析
- Python正则表达式简单说明(菜鸟教程里面的说明)
- Go语言详细介绍:logo和版本
- Java中的==符号与equals()的使用(测试两个变量是否相等)
- OpenCvSharp4初识
- 使用AirDrop将文件从iPhone或iPad传送到Mac电脑教程
- 脑电EEG代码开源分享 【1.前置准备-静息态篇】
- 小米笔记本怎么进bios设置u盘启动?
- AI 研究助力体育分析
- pg_stat_statements
- 博客系统 - 系统简介与首页设计
- 27岁程序员转职赏金猎人:一个漏洞10万美元,比工资香多了
- 关于微软研究院(谢幸、郑宇研究员主导的)“智能城市”“智能生活”研究的一个归纳
- caffe中HDF5层及数据生成
- [6.2] UI Automation with the Modern Experience-UiPath ARD Certification Training
热门文章
- docker 多线程(multiprocessing)报错:leaked semaphores 以及 bus error (core dumped)
- springCloud-Alibaba
- SpringCloud相关总结
- 国际分子植物与微生物互作学会(MPMI)2023年大会(美国罗德岛7.16-20)
- LOJ #2878. 「JOISC 2014 Day2」邮戳拉力赛 动态规划+括号序列
- 标准C语言day03
- Sphinx文档生成工具(二)
- ROS开发之如何使用常用可视化工具?
- linux有桌面有的没桌面_Linux桌面如何成长
- Github桌面版使用方式