一、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相关推荐

  1. Python爬虫学习第二章-1-requests模块简介

    Python爬虫学习第二章-1-requests模块简介   这一章主要是介绍requests模块的相关知识以及使用 1.requests模块简介: 概述:是python中原生的一款基于网络请求的模块 ...

  2. 数据解析学习笔记(正则解析、bs4解析、xpath解析)

    聚焦爬虫:爬取页面中指定的页面内容. - 编码流程: - 指定url - 发起请求 - 获取响应数据 - 数据解析 - 持久化存储 数据解析分类: 正则 bs4 xpath(***) 数据解析原理概述 ...

  3. Python爬虫编程4——数据解析模块之bs4

    目录 一.bs4简介 1.基本概念 2.源码分析 二.bs4的使用 1.快速开始 2.bs4的对象种类 三.遍历文档树 遍历子节点 1.contents      children      desc ...

  4. 【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,设置 ...

  5. 利用python爬虫(part16)--json解析模块

    学习笔记 json解析模块 json.loads 作用 把json格式的字符串转为Python数据类型. 语法 res = requests.get(url=url, headers=headers) ...

  6. python爬虫正则解析及xpath解析,lxml解析库

    正则解析模块re re模块使用流程 方法一 r_list=re.findall('正则表达式',html,re.S) 方法二 # 1.创建正则编译对象 pattern = re.compile('正则 ...

  7. python爬虫学习笔记-网络爬虫的三种数据解析方式

    爬虫的分类 1.通用爬虫:通用爬虫是搜索引擎(Baidu.Google.Yahoo等)"抓取系统"的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份 ...

  8. Python爬虫学习第十一天---pymongo模块使用

    Python爬虫学习第十一天-pymongo模块使用 一.安装pymongo模块 python3 -m pip install pymongo 二.pymongo模块的使用 1.配置基础项 user ...

  9. 一木.溪桥学爬虫-04:requests模块

    一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-04:requests模块.cookie.session 日期:2021年1月31日 学习 ...

最新文章

  1. 找不到包含 OwinStartupAttribute 的程序集
  2. 普华永道:人工智能将重塑职位格局并与物联网合并
  3. JSON字符串通过response下载保存
  4. mybatis对mapper.xml的解析(一)
  5. OpenCV中图像垂直拼接函数vconcat的使用
  6. Java 远程通讯技术及原理分析
  7. Python正则表达式简单说明(菜鸟教程里面的说明)
  8. Go语言详细介绍:logo和版本
  9. Java中的==符号与equals()的使用(测试两个变量是否相等)
  10. OpenCvSharp4初识
  11. 使用AirDrop将文件从iPhone或iPad传送到Mac电脑教程
  12. 脑电EEG代码开源分享 【1.前置准备-静息态篇】
  13. 小米笔记本怎么进bios设置u盘启动?
  14. AI 研究助力体育分析
  15. pg_stat_statements
  16. 博客系统 - 系统简介与首页设计
  17. 27岁程序员转职赏金猎人:一个漏洞10万美元,比工资香多了
  18. 关于微软研究院(谢幸、郑宇研究员主导的)“智能城市”“智能生活”研究的一个归纳
  19. caffe中HDF5层及数据生成
  20. [6.2] UI Automation with the Modern Experience-UiPath ARD Certification Training

热门文章

  1. docker 多线程(multiprocessing)报错:leaked semaphores 以及 bus error (core dumped)
  2. springCloud-Alibaba
  3. SpringCloud相关总结
  4. 国际分子植物与微生物互作学会(MPMI)2023年大会(美国罗德岛7.16-20)
  5. LOJ #2878. 「JOISC 2014 Day2」邮戳拉力赛 动态规划+括号序列
  6. 标准C语言day03
  7. Sphinx文档生成工具(二)
  8. ROS开发之如何使用常用可视化工具?
  9. linux有桌面有的没桌面_Linux桌面如何成长
  10. Github桌面版使用方式