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

第一天

简单示例

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

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

<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样

相关推荐
bugtraq20211 小时前
闲鱼网页版开放,爬虫的难度指数级降低。
爬虫
Bigcrab__5 小时前
Python3网络爬虫开发实战(15)Scrapy 框架的使用(第一版)
爬虫·python·scrapy
九月镇灵将5 小时前
爬虫逆向学习(六):补环境过某数四代
爬虫·补环境·瑞数
kngines7 小时前
【PLW004】基于Python网络爬虫与推荐算法的新闻推荐平台v1.0(Python+Django+NLP+Vue+MySQL前后端分离)
爬虫·python·nlp·推荐算法
walk walk17 小时前
免费爬虫软件“HyperlinkCollector超链采集器v0.1”
爬虫
亿牛云爬虫专家21 小时前
如何通过subprocess在数据采集中执行外部命令 —以微博为例
爬虫·python·数据采集·多线程·代理ip·subprocess·微博
菜鸡中的奋斗鸡→挣扎鸡21 小时前
初始爬虫5
爬虫
无敌开心1 天前
Django-Celery-Flower实现异步和定时爬虫及其监控邮件告警
爬虫·python·django