爬虫技术之正则提取静态页面数据

第一天

简单示例

在爬虫过程中,我们获取到了页面之后,通常需要做的就是解析数据,将数据持久化到数据库为我所用。如何又快又准确得提取有效数据?这是一门技术,看了我的博客之前可能略有难度,但各位大师看了我的博客之后,那只能说解析页面就像砍瓜切菜,喝水吃饭一般简单。

废话不说,直接搞示例,请看下面这个页面源码:

<tr><th>性別:</th><td>男</td></tr><tr>

来来来,写个python代码提取性别?

分析一下,这不就是td标签内的数据嘛?写一个正则,提取<td>男</td> 中间的中文。

正则得这么写,开头是<td>中间是要提取的内容,使用()括起来,不管中间是啥,()内就写.*?

最后以</td>结尾,想法是可以搞定的,上代码试试。

看代码:

python 复制代码
# coding=utf-8

import re
html_string = '''<tr><th>性別:</th><td>男</td></tr><tr>'''
regex = r'<td>(.*?)</td>'

result = re.findall(regex,html_string)
print(result)

这个代码跑起来看看是牛还是马喽==>

果然是牛,🐂🐂🐂!

是不是感觉自己又行了,就是这么简单,后面慢慢试试复杂点页面,但都是解析方法从这个代码升级的,就是白开水,一眼望到底呀!

今天懒得写了,我得去钓鱼了。已经空军16天,今天必须破龟,明天来继续搞代码。

第二天

贪婪与非贪婪模式

空军回来,又是新的一天,我们继续搞!

这里我们需要了解两种正则的匹配模式【贪婪模式鱼非贪婪模式】,主要掌握非贪婪模式,就能搞定市面上大部分页面解析需求,666!

看一眼贪婪模式,虽然不常用,但可能哪个面试狗(我从来不把面试官当人,因为我遇到的都很狗,🐕🐕🐕)问,傻冒!

贪婪模式尽可能多地匹配所指定的字符。
在正则表达式中,默认情况下,大多数重复字符都是贪婪的,即它们尝试尽可能多次地匹配。
例如,.*将匹配尽可能长的字符串,即匹配到整个字符串,而不是仅仅匹配到第一个出现的子字符串。

以下熟读并背诵,这个很重要!!!

非贪婪模式尽可能少地匹配所指定的字符。
非贪婪模式通常通过在重复字符后面加上一个?来实现。
例如,.*?将匹配尽可能短的字符串,即匹配到第一个出现的子字符串。

我来找个字符串,搞个代码理解理解,不然说得太干!

字符串 "foobazquux",我们想匹配两个尖括号< >之间的内容:

上代码瞧瞧:

python 复制代码
# coding=utf-8

import re

# 原始字符串
text = "foo<bar>baz<qux>quux"

# 贪婪模式
greedy_pattern = re.compile(r'<.*>')
# 创建了一个正则表达式对象,使用了贪婪模式,模式是 <.*>,表示匹配尖括号<和>之间的任意字符(包括零个字符或多个字符)。
greedy_match = greedy_pattern.search(text)
# 使用 search() 方法在给定的文本字符串 text 中搜索与正则表达式 greedy_pattern 匹配的第一个子串。
print("贪婪模式匹配结果:", greedy_match.group())
# 使用 group() 方法返回与正则表达式模式匹配的文本。


# 非贪婪模式
non_greedy_pattern = re.compile(r'<.*?>')
non_greedy_match = non_greedy_pattern.search(text)
print("非贪婪模式匹配结果:", non_greedy_match.group())

看看代码的运行结果,是牛还是马。

小小牛马,简单简单。

了解了贪婪模式与非贪婪模式,我们基本上就可以搞定大部分的网页解析了,念在是初学者,又名菜鸡,还是多搞点案例来给大家修炼一下,顺便给大家一个匹配代码模板,以后只需要修改正则表达式即可,看完请说我牛b🐂🐂🐂

练习一

打开链接点我,将电影名称,上映时间,评分采集并保存。

主要采集这三个数据

我们先来搞定标题的正则采集,标题长在这个里面,结果就下面这个b样

相关推荐
好看资源平台1 小时前
网络爬虫——爬虫项目案例
爬虫·python
躺平的花卷4 小时前
Python爬虫案例八:抓取597招聘网信息并用xlutils进行excel数据的保存
爬虫·excel
爱分享的码瑞哥5 小时前
Python爬虫中的IP封禁问题及其解决方案
爬虫·python·tcp/ip
不做超级小白6 小时前
工欲善其事,必先利其器;爬虫路上,我用抓包
爬虫
Smartdaili China6 小时前
如何在 Microsoft Edge 中设置代理: 快速而简单的方法
前端·爬虫·安全·microsoft·edge·社交·动态住宅代理
好看资源平台9 小时前
网络爬虫——综合实战项目:多平台房源信息采集与分析系统
爬虫·python
Tech Synapse1 天前
Python网络爬虫实践案例:爬取猫眼电影Top100
开发语言·爬虫·python
数据小爬虫@1 天前
利用Python爬虫获取淘宝店铺详情
开发语言·爬虫·python
B站计算机毕业设计超人1 天前
计算机毕业设计SparkStreaming+Kafka新能源汽车推荐系统 汽车数据分析可视化大屏 新能源汽车推荐系统 汽车爬虫 汽车大数据 机器学习
数据仓库·爬虫·python·数据分析·kafka·数据可视化·推荐算法
易辰君1 天前
【Python爬虫实战】深入解析 Scrapy 爬虫框架:高效抓取与实战搭建全指南
开发语言·爬虫·python