【发布时间】:2019-06-15 21:14:00
【问题描述】:
我正在使用 beautifulsoup 解析文本,并希望返回父标签下方/下方的标签。但是,在三个不同的文档之间,“所需数据集”的大小写方式之间存在不一致。见下文:
<td class="pl "...-unimportant bits of script here-...;>Desired Data Set...</td>
和
<td class="pl "...-unimportant bits of script here-...;>Desired data set...</td>
和
<td class="pl "...-unimportant bits of script here-...;>desired data set...</td>
到目前为止,这是我的代码:
import requests
from bs4 import BeautifulSoup
soup = BeautifulSoup(data.text, 'lxml')
filenames = ['Desired Data Set','desired data set','Desired data set']
for filename in filenames:
for item in soup.select('filename:contains("' + filename + '")'):
for td in item.find('td', text=filename).parent.find_all('td'):
data = [td.text.strip()]
print(data)
...它的工作原理。
但是,当我开始使用更大的数据集时,我确信会出现更多的不一致,即使上述方法有效,它也很“hacky”,既不高效也不谨慎。我只想为所有需要的数据集使用一个文件名。
我尝试使用 lower() 降低整个汤,但它会引发 NoneType 错误。
【问题讨论】:
标签: python text beautifulsoup tags