gpt4 book ai didi

python - BeautifulSoup 删除标签后跟特定标签和特定属性

转载 作者:可可西里 更新时间:2023-11-01 13:22:41 27 4
gpt4 key购买 nike

我是网络抓取领域的新手,到目前为止,我对 BeautifulSoup 感到非常惊讶。但是,有些事情我无法做到。

我想做的是删除一些标签,这些标签后面跟着一些特定的标签和特定的属性。

让我告诉你:

#Import modules
from bs4 import BeautifulSoup
import requests

#Parse URL
url = "http://www.soccervista.com/Italy-Serie_A-2016_2017-845699.html"
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data, 'html.parser')

#This is the table which I want to extract
table = soup.find_all('table')[4]

在获得我想要操作的正确表后,有一些'tr'标签,后面跟着'td'和属性'colspan'

我最终想要的是删除那些特定的“tr”,因为我需要更多的“tr”标签。

带有“colspan”属性的“td”共有 3 个:

#Output for 'td' with 'colspan'

print(table.select('td[colspan]'))

[<td colspan="13"><img height="10" src="/imgs/line.png" width="100%"/></td>,
<td colspan="13"><img height="10" src="/imgs/line.png" width="100%"/></td>,
<td colspan="13"><img height="10" src="/imgs/line.png" width="100%"/></td>]

这里是 HTML 的摘录和我要删除的特定“tr”的一个示例(在下面插入一条注释,上面写着“#THIS ONE!”):

 <td align="center">
2:1
</td>
<td class="one">
AC Milan
</td>
<td>
<a href="/Cagliari-AC_Milan-2320071-2320071.html">
<img alt="More details about - soccer game" border="0" height="14" src="/imgs/detail3.gif" width="14"/>
</a>
</td>
</tr>
***<tr class="predict"> ------------- >>> **#THIS ONE!*****
<td colspan="13">
<img height="10" src="/imgs/line.png" width="100%"/>
</td>
<tr class="predict">
<td>
27 May
</td>
<td>
38
</td>
<td>
FT
</td>
<td align="right" class="one">

顺便说一下,我也想删除“td colspan”和“img”。

有什么想法吗?

*已安装 Python 最新版本

*已安装 BeautifulSoup 模块最新版本

最佳答案

找到您要删除的特定标签,然后使用 deompose()extract()

for tag in tags_to_delete:
tag.decompose()

或者

for tag in tags_to_delete:
tag.extract()

编辑

要找到特定的标签,您可以先找到所有的 tr 标签,然后检查该标签是否具有 td 属性 colspan="13" 如果是,则 decompose() 它。

import requests
from bs4 import BeautifulSoup

url = "http://www.soccervista.com/Italy-Serie_A-2016_2017-845699.html"
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data, 'lxml')

table = soup.find_all('table')[4]
for t in table.find_all("tr", class_="predict"):

check = t.find("td", colspan="13")
if(check != None):
t.decompose()

关于python - BeautifulSoup 删除标签后跟特定标签和特定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44711916/

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