Python 从div标记中提取文本
我有一个列表,我正在使用属性从美丽的汤中提取Python 从div标记中提取文本,python,html,regex,selenium,beautifulsoup,Python,Html,Regex,Selenium,Beautifulsoup,我有一个列表,我正在使用属性从美丽的汤中提取 g_info = soup.find_all("div", {"id":"details_readonly"}) print g_info ## this prints out all the contents of the div tag. y = re.compile(r'B00(.{7})',g_info) print y 该列表是未初始化的HTML。此列表中的某个位置有一个文本,其模式始终以B00开头,这是一个10位数字,需要从包含随
g_info = soup.find_all("div", {"id":"details_readonly"})
print g_info ## this prints out all the contents of the div tag.
y = re.compile(r'B00(.{7})',g_info)
print y
该列表是未初始化的HTML。此列表中的某个位置有一个文本,其模式始终以B00开头,这是一个10位数字,需要从包含随机文本的div标记的多个页面中提取
g_info有一个包含列表中所有html内容的列表。此列表与此类似:
[<div id="details_readonly" style="">\n<h2>Lorem Ipsum <small></h2>\n Lorem Ipsum text <br/>Lorem Ipsum text
Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem
Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text
No<br/> B00EQ0CKRQ <br/>Lorem Ipsum text Lorem Ipsum text
Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem
Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum
text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text
</div>]
有人能帮我用上面提到的模式从div标签中提取内容吗
import re
g_info = '<div id="details_readonly" style="">\n<h2>Lorem Ipsum <small></h2>\n Lorem Ipsum text <br/>Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text No<br/> B00EQ0CKRQ <br/>Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text Lorem Ipsum text </div>]'
print re.search('B00.{7}', g_info).group(0)
更新:使用您的代码:
g_info = soup.find_all("div", {"id":"details_readonly"})
print g_info ## this prints out all the contents of the div tag.
y = re.search('B00.{7}', ''.join(g_info)).group(0)
print y
'.join(g_info)
会将列表g_info
转换为字符串,正则表达式应该可以工作。尝试执行时出现此错误<代码>打印重新搜索('B00.{7}',g_info).group(0)文件“C:\Python27\lib\re.py”,在搜索返回编译(模式,标志)中的第142行。搜索(字符串)类型错误:预期字符串或缓冲区感谢我在str中键入cast g_info,然后它工作了。Thanks@bojra:你能告诉我你在使用连接函数做什么吗?你可以在答案中找到它。它接受列表中的所有内容并转换为单个字符串。例如,如果您有一个列表m=[“a”,“b”]
,如果您使用'.join(m)
,它将输出ab
。
B00EQ0CKRQ
g_info = soup.find_all("div", {"id":"details_readonly"})
print g_info ## this prints out all the contents of the div tag.
y = re.search('B00.{7}', ''.join(g_info)).group(0)
print y