Python正则表达式(持续更新,各种字符串筛选,总有一款适合您当前的功能)(2)

简介: Python正则表达式(持续更新,各种字符串筛选,总有一款适合您当前的功能)(2)

3、获取标签的文本值·例如:span标签、a标签文本

我这里处理的是a标签的文本,咱们没有使用框架,相对来说纯使用正则表达式稍微麻烦一些,但是处理方式还是不复杂的,可以看到我获取a标签所有内容后,将左右的标签符号去掉就剩下中间的文本了,还是挺容易获取的。如果是span标签,您直接把a标签替换成span标签就行了。


获取方法1:

import re
import requests
'''
获取某网站·某个·class元素下·所有内容·返回字符串·根据字符串匹配超链接的文本内容
'''
url = "https://book.zongheng.com/showchapter/1243826.html"
context = requests.get(url).content.decode("utf-8")
result1 = re.findall(r"<ul class=\"chapter-list clearfix\">.*?</ul>", context, re.S)
a_href = re.findall(r'<a.*?>.*?</a>', result1[0])
data_list = []
left_text = ">"
right_text = "</a>"
for item in a_href:
    result = re.findall(r">.*?</a>", item)
    for item1 in result:
        item1 = item1.replace(left_text, "", 1).replace(right_text, "", 1)
        data_list.append(item1)
for item in data_list:
    print(item)
print("爬取成功:", len(data_list))

结果呈现,可以看到138条都筛选出来了。


image.png


获取方法2:

通过【()】的方法直接获取我们需要的内容


import re
import requests
'''
获取某网站·某个·class元素下·所有内容·返回字符串·根据字符串匹配超链接的文本内容
'''
url = "https://book.zongheng.com/showchapter/1243826.html"
context = requests.get(url).content.decode("utf-8")
result1 = re.findall(r"<ul class=\"chapter-list clearfix\">.*?</ul>", context, re.S)
a_href = re.findall(r'<a.*?>.*?</a>', result1[0])
data_list = []
left_text = ">"
right_text = "</a>"
for item in a_href:
    result = re.findall(r">(.*?)</a>", item)
    data_list.append(result[0])
for item in data_list:
    print(item)
print("爬取成功:", len(data_list))


这种方法直接就能获取我们需要的内容:


image.png


4、key:value格式的数据

在下图中可以看到字典格式的数据,{"adv_type":"bookDirectory00","adv_res":"zongheng","pos":""}我们想要其中的"adv_type"的值,那么,我们需要用另外一种正则表达式了:


image.png


import re
import requests
'''
获取key:value的数据
'''
url = "https://book.zongheng.com/showchapter/1243826.html"
context = requests.get(url).content.decode("utf-8")
result1 = re.findall('"adv_type":"(.*?)"', context)
for item in result1:
    print(item)

结果示例:

image.png



5、匹配url

1、匹配短连接

r'(http[|s]?://[^\s]*/)'


import re
import requests
'''
提取字符串中的链接
'''
headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
}
url_info = """6.69 Cuf:/ 售价888一碗的面!自己在家做需要花多少钱?# 百蟹面 # 六虾面   https://v.douyin.com/rhkGMfh/ 复制此链接,打开Dou音搜索,直接观看视频!"""
short_url = re.findall(r'(http[|s]?://[^\s]*/)', url_info)[0]
print(short_url)
url = requests.get(url=short_url, headers=headers).url
item_id = url.split('/')[4][0:19]
url = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={0}".format(item_id)
html = requests.get(url, headers=headers)
title = html.json()['item_list'][0]['desc']  # 标题获取
print(title)

结果获取:


image.png


2、匹配长连接

r"""(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"""

import re
import requests
'''
获取某网站·获取所有的长链接
'''
url = "https://book.zongheng.com/showchapter/1243826.html"
context = requests.get(url).content.decode("utf-8")
result1 = re.findall(r"<ul class=\"chapter-list clearfix\">.*?</ul>", context, re.S)
# result1中包含多个长连接
rule = r"""(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"""
result2 = re.findall(rule, result1[0], re.S)
data_list = []
for item in result2:
    new_url = "{0}://book.zongheng.com{1}".format(item[0], item[2])
    data_list.append(new_url)
for item in data_list:
    print(item)
print("获取连接:", len(data_list))


匹配的内容需要拼接一下:


image.png


3、各类网址url列表


image.png

image.png

4、网页中中文提取

r"[\u4E00-\u9FA5]"


import re
import requests
'''
获取某网站·获取网站中所有中文
'''
url = "https://book.zongheng.com/showchapter/1243826.html"
context = requests.get(url).content.decode("utf-8")
rule = r"[\u4E00-\u9FA5]"
result2 = re.findall(rule, context, re.S)
count = 0
for item in result2:
    if count % 10 == 0:
        print()
    print(item, end="")
    count += 1
print("\n共计提取:", len(result2), "个中文")


结果展示:

image.png



总结:

暂时先写这些,后面随时用到随时写。  

相关文章
|
1月前
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
2月前
|
开发框架 数据建模 中间件
Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器是那些静悄悄的幕后英雄。它们不张扬,却能默默地为函数或类增添强大的功能。本文将带你了解装饰器的魅力所在,从基础概念到实际应用,我们一步步揭开装饰器的神秘面纱。准备好了吗?让我们开始这段简洁而富有启发性的旅程吧!
56 6
|
3月前
|
IDE 数据挖掘 开发工具
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
60 7
|
3月前
|
存储 缓存 测试技术
Python中的装饰器:功能增强与代码复用的利器
在Python编程中,装饰器是一种强大而灵活的工具,它允许开发者以简洁优雅的方式增强函数或方法的功能。本文将深入探讨装饰器的定义、工作原理、应用场景以及如何自定义装饰器。通过实例演示,我们将展示装饰器如何在不修改原有代码的基础上添加新的行为,从而提高代码的可读性、可维护性和复用性。此外,我们还将讨论装饰器在实际应用中的一些最佳实践和潜在陷阱。
|
5天前
|
人工智能 搜索推荐 测试技术
通义灵码 2.0 智能编码功能评测:Deepseek 加持下的 Python 开发体验
通义灵码 2.0 智能编码功能评测:Deepseek 加持下的 Python 开发体验
64 11
|
3月前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
151 64
|
2月前
|
SQL 存储 数据挖掘
使用Python和PDFPlumber进行简历筛选:以SQL技能为例
本文介绍了一种使用Python和`pdfplumber`库自动筛选简历的方法,特别是针对包含“SQL”技能的简历。通过环境准备、代码解析等步骤,实现从指定文件夹中筛选出含有“SQL”关键词的简历,并将其移动到新的文件夹中,提高招聘效率。
73 8
使用Python和PDFPlumber进行简历筛选:以SQL技能为例
|
1月前
|
存储 人工智能 Python
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
16 0
|
2月前
|
测试技术 Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界中,装饰器是那些能够为我们的代码增添魔力的小精灵。它们不仅让代码看起来更加优雅,还能在不改变原有函数定义的情况下,增加额外的功能。本文将通过生动的例子和易于理解的语言,带你领略装饰器的奥秘,从基础概念到实际应用,一起开启Python装饰器的奇妙旅程。
57 11
|
2月前
|
存储 测试技术 Python
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
62 5

热门文章

最新文章