gpt4 book ai didi

python - 使用 Beautifulsoup 解析 NELL 知识库页面

转载 作者:太空宇宙 更新时间:2023-11-03 17:47:07 25 4
gpt4 key购买 nike

我正在使用 Beautiful Soup 来解析 http://rtw.ml.cmu.edu/rtw/kbbrowser/ 中的类别列表,我得到了这个页面的html代码:

<html>
<head>
<link href="../css/browser.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript">
if (parent.location.href == self.location.href) {
if (window.location.href.replace)
window.location.replace('index.php');
else
// causes problems with back button, but works
window.location.href = 'index.php';
}
</script>
</head>
<body id="ontology">
...
</body>
</html>

我使用的代码非常简单,但是当我尝试访问 <body> 时元素,我得到 None :

import urllib
from BeautifulSoup import BeautifulSoup
from bs4 import BeautifulSoup
import mechanize
from mechanize import Browser
import requests
import re
import os

link = 'http://rtw.ml.cmu.edu/rtw/kbbrowser/ontology.php'
pageFile = urllib.urlopen(link).read()
soup = BeautifulSoup(pageFile)

print soup.head.contents[0].name
print soup.html.contents[1].name

为什么在这种情况下头元素没有同级元素?
我得到:

AttributeError: 'NoneType' object has no attribute 'next_element'

当试图获取head.next_Sibling时还有。

最佳答案

这是因为文本节点也是内容的一部分。

不要操作 contents 属性,而是使用 CSS selectors找到类别列表。例如,以下是列出顶级类别的方法:

for li in soup.select("body#ontology > ul > li"):
print li.find_all("a")[-1].text

关于python - 使用 Beautifulsoup 解析 NELL 知识库页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29630955/

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