其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

Python爬虫 正则表达式

GG网络技术分享 2025-03-18 16:15 1


问题描述:

怎么运用Python爬虫的re.compile提取信息?
就是我要提取“小潮院长”,“322万”
要怎么用正则表达式描述?

图片转代码服务由CSDN问答提供

感谢您的意见,我们尽快改进~

功能建议

 V<span class="data-box">(flex

<imgsrc="data:image/png;base64,iVBOR..+A1g1m1905ZM4AAAAAE1FTKSuOmcc"alt="play",

"322万

e/span

 <span class="data-box up-name">(flex

<img src="/s1.hds1b.com/bfs/static/jinkela/popular/assets/icon_ up.png" alt="up">

"小潮院长

</span>

网友观点:

这不都是这些元素的text嘛,就定位到span标签提取文本就可以

看下这篇博客,也许你就懂了,链接:Python 使用正则表达式
你还可以看下python参考手册中的 python-re --- 正则表达式操作

[Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例

初来知乎分享,还请各位大佬多多包涵。欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。

Python系列整体框架包括基础语法10篇、网络爬虫30篇、可视化分析10篇、机器学习20篇、大数据分析20篇、图像识别30篇、人工智能40篇、Python安全20篇、其他技巧10篇。您的关注、点赞和转发就是对秀璋最大的支持,知识无价人有情,希望我们都能在人生路上开心快乐、共同成长。

本文参考了作者CSDN的文章,链接如下:

  • https://blog.csdn.net/Eastmount
  • https://github.com/eastmountyxz/Python-zero2one

前文赏析:

  • [Python从零到壹] 一.为什么我们要学Python及基础语法详解
  • [Python从零到壹] 二.语法基础之条件语句、循环语句和函数
  • [Python从零到壹] 三.语法基础之文件操作、CSV文件读写及面向对象
  • [Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例


文章目录:

  • 一.什么是网络爬虫
  • 二.正则表达式
    • 1.re模块
    • 2.complie方法
    • 3.match方法
    • 4.search方法
    • 5.group和groups方法
  • 三.Python网络数据爬取的常用模块
    • 1.urllib模块
    • 2.urlparse模块
  • 四.正则表达式抓取网络数据的常见方法
    • 1.抓取标签间的内容
    • 2.爬取标签中的参数
    • 3.字符串处理及替换
  • 五.个人博客爬取实例
    • 1.分析过程
    • 2.代码实现
  • 六.总结

一.什么是网络爬虫

随着互联网的迅速发展,万维网成为大量信息的载体,越来越多的网民可以通过互联网获取所需的信息,同时如何有效地提取并利用这些信息也成为了一个巨大的挑战。搜索引擎(Search Engine)作为辅助人们检索信息的工具,它成为了用户访问万维网的入口和工具,常见的搜索引擎比如Google、Yahoo、百度、搜狗等。但是,这些通用性搜索引擎也存在着一定的局限性,比如搜索引擎返回的结果包含大量用户不关心的网页;再如它们是基于关键字检索,缺乏语义理解,导致反馈的信息不准确;通用的搜索引擎无法处理非结构性数据,图片、音频、视频等复杂类型的数据。

为了解决上述问题,定向抓取相关网页资源的网络爬虫应运而生,下图是Google搜索引擎的架构图,它从万维网中爬取相关数据,通过文本和连接分析,再进行打分排序,最后返回相关的搜索结果至浏览器。同时,现在比较热门的知识图谱也是为了解决类似的问题而提出的。

网络爬虫又被称为网页蜘蛛或网络机器人,它是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫不同,定向爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。

网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web Crawler)、增量式网络爬虫(Incremental Web Crawler)、深层网络爬虫(Deep Web Crawler)。实际的网络爬虫系统通常是几种爬虫技术相结合实现的。

数据分析通常包括前期准备、数据爬取、数据预处理、数据分析、可视化绘图及分析评估六个步骤,如下图所示。其中数据爬取主要划分为四个步骤:

  • 需求分析。首先需要分析网络数据爬取的需求,了解所爬取主题的网址、内容分布,所获取语料的字段、图集等内容。
  • 技术选择。网页抓取技术可以通过Python、Java、C++、C#等不同编程语言实现,主要涉及的技术包括:Urllib库、正则表达式、Selenium、BeautifulSoup、Scrapy等技术。
  • 网页抓取。确定好爬取技术后,需要分析网页的DOM树结构,通过XPATH技术定位网页所爬取内容的节点,再抓取数据;同时,部分网站涉及到页面跳转、登录验证等。
  • 存储技术。数据存储技术主要是存储爬取的数据信息,主要包括SQL数据库、纯文本格式、CSV\\XLS文件等。

作者希望大家能从基础跟着我学习Python知识,最后能抓取你需要的数据集并进行深入的分析,一起加油吧!


二.正则表达式

正则表达式是用于处理字符串的强大工具,通常被用来检索、替换那些符合某种规则的文本。这篇文章首先引入正则表达式的基本概念,然后讲解其常用的方法,并结合Python网络数据爬取常用模块和常见正则表达式的网站分析方法进行讲解,最后使用正则表达式爬取了个人博客网站。

正则表达式(Regular Expression,简称Regex或RE)又称为正规表示法或常规表示法,常常用来检索、替换那些符合某个模式的文本,它首先设定好了一些特殊的字符及字符组合,通过组合的“规则字符串”来对表达式进行过滤,从而获取或匹配我们想要的特定内容。它非常灵活,其逻辑性和功能性也非常强,并能迅速地通过表达式从字符串中找到所需信息,但对于刚接触的人来说,比较晦涩难懂。

由于正则表达式主要应用对象是文本,因此它在各种文本编辑器中都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。

1.re模块

Python通过re模块提供对正则表达式的支持,但在使用正则表达式之前需要导入re模块,才能调用该模块的功能函数。

  • import re

其基本步骤是先将正则表达式的字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得一个匹配(match)实例,再使用match实例获得所需信息。常用的函数是findall,原型如下:

  • findall(string[, pos[, endpos]]) | re.findall(pattern, string[, flags])

该函数表示搜索字符串string,以列表形式返回全部能匹配的子串。其中参数re包括三个常见值,每个常见值括号内的内容是完整的写法。

  • re.I(re.IGNORECASE):使匹配忽略大小写
  • re.M(re.MULTILINE):允许多行匹配
  • re.S(re.DOTALL):匹配包括换行在内的所有字符

Pattern对象是一个编译好的正则表达式,通过Pattern提供的一系列方法可以对文本进行匹配查找。Pattern不能直接实例化,必须使用re.compile()进行构造。


2.complie方法

re正则表达式模块包括一些常用的操作函数,比如complie()函数。其原型如下:

  • compile(pattern[,flags] )

该函数根据包含正则表达式的字符串创建模式对象,返回一个pattern对象。参数flags是匹配模式,可以使用按位或“|”表示同时生效,也可以在正则表达式字符串中指定。Pattern对象是不能直接实例化的,只能通过compile方法得到。

简单举个实例,使用正则表达式获取字符串中的数字内容,如下所示:

标签:

提交需求或反馈

Demand feedback