Python 获取div标签中的文字实例
作者:明天依旧可好 发布时间:2023-03-27 01:53:53
预备知识点
compile 函数
compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。
语法格式为:
re.compile(pattern[, flags])
.compile(pattern[, flags])
参数:
pattern : 一个字符串形式的正则表达式
flags 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
re.I 忽略大小写
re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
re.M 多行模式
re.S 即为' . '并且包括换行符在内的任意字符(' . '不包括换行符)
re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
re.X 为了增加可读性,忽略空格和' # '后面的注释
检索和替换
Python 的re模块提供了re.sub用于替换字符串中的匹配项。
语法:
re.sub(pattern, repl, string, count=0)
.sub(pattern, repl, string, count=0)
参数:
pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
Python中字符串前面加上 r 表示原生字符串, 与大多数编程语言相同,正则表达式里使用"\"作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r"\\"表示。同样,匹配一个数字的"\\d"可以写成r"\d"。有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。
思路整理:
在编程过程中遇到的部分问题在这里写出来和大家共享
问题1:在编程过程中成功获取了目标的名字,但是它存在于div框架中,我们要做的就是将div中的文字与标签分开,在这里我们用的是正则表达式
问题2:
上代码:
<span style="color:#000000"># -*- coding: UTF-8 -*-
import requests
import time
import re
from bs4 import BeautifulSoup
from urllib.request import urlretrieve
if __name__ == '__main__':
list_url = []
url = 'https://www.names.org/n/kevin/about'
#设置请求头信息
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
}
req = requests.get(url=url,headers=headers)
req.encoding='utf-8'
html=req.text
bf = BeautifulSoup(html,'html.parser')
targets_url_1 = bf.find_all(class_='container page-section')
bf = BeautifulSoup(str(targets_url_1),'html.parser')
targets_url_2 = bf.find_all(class_='name')
#保存名字链接
for each in targets_url_2:
list_url.append(re.sub('[\t\n]',"",re.sub(r'<[^>]+>',"",str(each))))
f = open('test.txt', 'w') #首先先创建一个文件对象,打开方式为w
for each in list_url:
f.writelines(each) #用readlines()方法写入文件
f.writelines('\n')
print(list_url)
print('下载完成!')
</span>
来源:https://blog.csdn.net/qq_38251616/article/details/79278890
猜你喜欢
- 代码如下:'===================================== '转换内容,防止意外 '==
- 在python3.x中,可以使用pymysql来MySQL数据库的连接,并实现数据库的各种操作,本次博客主要介绍了pymysql的安装和使用
- 前言:循环中通过break语句会立刻终止并跳出循环语句。break就像是终止按键,不管执行到哪一步,只要遇到break,不管什么后续步骤,直
- 标记路径演示效果:实例代码import matplotlib.pyplot as pltimport matplotlib.path as
- 一、I/O模型IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执
- 本文实例为大家分享了python实现简单聊天室的具体代码,供大家参考,具体内容如下刚刚接触python编程,又从接触java开始一直对soc
- 目录前言 字符串都有哪些操作?第一类 判断识别字符串第二类 字符串编辑的操作第三类:字符串跟字节串的互转总结前言今天我们说了字符串
- python注释方法方式1单行注释:shift + #(在代码的最前面输入,非选中代码进行注释)多行注释:同单行一样在每一行的前面输入shi
- 本文实例讲述了Python基于pillow判断图片完整性的方法。分享给大家供大家参考,具体如下:1、安装第三方库。pip install p
- 本篇文章的python版本为:什么是httphttp是一个应用层协议,准确的来说是基于TCP/IP4层网络协议中的传输层中的TCP应用层协议
- 一.图像掩膜直方图如果要统计图像的某一部分直方图,就需要使用掩码(蒙板)来进行计算。假设将要统计的部分设置为白色,其余部分设置为黑色,然后使
- SQL Server 数据库定时自动备份,供大家参考,具体内容如下在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库。而备
- SQL中合并多行记录的方法总汇: --1. 创建表,添加测试数据 CREATE TABLE tb(id int, [value] varch
- 屏弊网页的右键<body oncontextmenu="return false">或<body st
- 官方说明gather可以对一个Tensor进行聚合,声明为:torch.gather(input, dim, index, out=None
- 一个最最简单的例子:绘制一个从 0 到 360 度完整的 SIN 函数图形import numpy as npimport matplotl
- 引言我看到很多 golang 社区的开发者,特别是因为它的简单性而被吸引的开发者,对 golang 中的事情应该如何处理做出了一些快速的判断
- 导语新的一年迎来了元宵节,元宵佳节在陪伴家人的同时,自然也少不了赏花灯,猜灯谜的项目。当然,受到疫情的影响,许多地方今年无法出门赏花灯,猜灯
- 在工作中遇到过 个问题执行一条代码时间过长 而且还不报错,卡死在那。还要继续执行下面代码,如何操作。下面是个简单的实例pip安装 第三方ev
- 一、Tensor 之间的运算规则相同大小 Tensor 之间的任何算术运算都会将运算应用到元素级不同大小 Tensor(要求dimensio