gpt4 book ai didi

python - BeautifulSoup4 soup.find ('tag' , text=re.compile ('my text' )) 仅有时有效

转载 作者:行者123 更新时间:2023-12-01 03:25:42 25 4
gpt4 key购买 nike

我正在尝试创建一种从以下 html 中提取文本的特定方法。

</table>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Close Date:</td>
<td> June 19, 2008</td>

我的问题是为什么会这样:

soup.find('td', text=re.compile('Close'))

返回:

<td>Close Date:</td>

但是,当我尝试做更具体的事情时,它什么也没有返回。

soup.find('td', text=re.compile('Close Date:'))

我想让脚本尽可能具体,以便我可以在多个网页上运行它,而不会出现错误的文本。

最佳答案

CloseDate 之间可能存在不间断空格。在这种情况下,您可以使用 \s+ 来匹配 1 个或多个空格:

print(soup.find('td', text=re.compile('Close\s+Date:')))
<小时/>

例如,

import re
import bs4 as bs

content = '''\
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Close&nbsp;Date:</td>
<td> June 19, 2008</td>
'''

soup = bs.BeautifulSoup(content, 'lxml')
print(soup.find('td', text=re.compile('Close\s+Date:')))

产量

<td>Close Date:</td>

关于python - BeautifulSoup4 soup.find ('tag' , text=re.compile ('my text' )) 仅有时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41411443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com