我是 Python 初学者,目前我正在尝试使用 BeautifulSoup 编写一个简单的脚本,从网页中提取一些信息并将其写入 CSV 文件。我在这里想做的是浏览网页上的所有列表。在我要使用的特定 HTML 文件中,只有一个“ul”有 id,我希望跳过该文件并将所有其他列表元素保存在一个数组中。我的代码不起作用,我不知道如何解决我的问题。
for ul in content_container.findAll('ul'):
if 'id' in ul:
continue
else:
for li in ul.findAll('li'):
list.append(li.text)
print(li.text)
当我打印列表时,我仍然看到 ul 中带有 id 的元素。我知道这是一个简单的问题,但我现在陷入困境。任何帮助将不胜感激
最佳答案
您正在寻找id=False
。使用这个:
for ul in content_container.find_all('ul', id=False):
for li in ul.find_all('li'):
list.append(li.text)
print(li.text)
这将忽略所有具有 id
作为属性的标签。另外,你的方法几乎是正确的。您只需要检查 id
是否存在于标签属性中,而不是存在于标签本身中(正如您所做的那样)。因此,请使用 if 'id' in ul.attrs()
而不是 if 'id' in ul
关于python - 如何使用 BeautifulSoup 跳过某些标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49770315/