gpt4 book ai didi

Python美汤选择文字

转载 作者:行者123 更新时间:2023-11-28 22:50:58 28 4
gpt4 key购买 nike

以下是我要解析的 HTML 代码的示例:

<html>
<body>
<td style="PADDING-LEFT: 5px"bgcolor="ffffff" class="style8"> Example BLAB BLAB BLAB </td>
<td style="PADDING-LEFT: 5px"bgcolor="ffffff" class="style8"> BLAB BLAB BLAB </td>
<td style="PADDING-LEFT: 5px"bgcolor="ffffff" class="style8"> BLAB BLAB BLAB </td>
<td style="PADDING-LEFT: 5px"bgcolor="ffffff" class="style8"> BLAB BLAB BLAB </td>
</body>
</html>

我正在使用 beautiful soup 通过选择 style8 来解析 HTML 代码,如下所示(其中 html 读取我的 http 请求的结果):

html = result.read()
soup = BeautifulSoup(html)

content = soup.select('.style8')

在此示例中,content 变量返回包含 4 个标签的列表。我想检查列表中每个项目的 content.text,它包含每个 style8 类的文本,如果它包含 Example 和将其附加到变量。如果它遍历整个列表并且 Example 没有出现在列表中,它就会将 Not present 附加到变量。

到目前为止,我得到了以下信息:

foo = []

for i, tag in enumerate(content):
if content[i].text == 'Example':
foo.append('Example')
break
else:
continue

这只会在 foo 发生时将 Example 附加到 foo 上,但是如果它没有出现在整个列表。

任何这样做的方法都值得赞赏,或者搜索整个结果以检查字符串是否存在的更好方法会很棒

最佳答案

您可以使用 find_all() 找到所有 class='style8'td 元素,并使用列表理解来构造 foo 列表:

from bs4 import BeautifulSoup


html = """<html>
<body>
<td style="PADDING-LEFT: 5px"bgcolor="ffffff" class="style8"> Example BLAB BLAB BLAB </td>
<td style="PADDING-LEFT: 5px"bgcolor="ffffff" class="style8"> BLAB BLAB BLAB </td>
<td style="PADDING-LEFT: 5px"bgcolor="ffffff" class="style8"> BLAB BLAB BLAB </td>
<td style="PADDING-LEFT: 5px"bgcolor="ffffff" class="style8"> BLAB BLAB BLAB </td>
</body>
</html>"""

soup = BeautifulSoup(html)

foo = ["Example" if "Example" in node.text else "Not Present"
for node in soup.find_all('td', {'class': 'style8'})]
print foo

打印:

['Example', 'Not Present', 'Not Present', 'Not Present']

关于Python美汤选择文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22145368/

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