Ton*_*ark 138 python beautifulsoup
soup.find("tagName", { "id" : "articlebody" })
Run Code Online (Sandbox Code Playgroud)
为什么这不会返回<div id="articlebody"> ... </div>标签和之间的东西?它什么都不返回.而且我知道它存在的事实因为我正盯着它
soup.prettify()
Run Code Online (Sandbox Code Playgroud)
soup.find("div", { "id" : "articlebody" }) 也行不通.
编辑:这篇文章没有答案 - 如何删除?我发现BeautifulSoup没有正确解析,这可能实际上意味着我试图解析的页面没有在SGML或其他任何方式正确格式化.
Luk*_*ský 186
您应该发布您的示例文档,因为代码工作正常:
>>> import BeautifulSoup
>>> soup = BeautifulSoup.BeautifulSoup('<html><body><div id="articlebody"> ... </div></body></html')
>>> soup.find("div", {"id": "articlebody"})
<div id="articlebody"> ... </div>
Run Code Online (Sandbox Code Playgroud)
<div>在内部找到s <div>也可以:
>>> soup = BeautifulSoup.BeautifulSoup('<html><body><div><div id="articlebody"> ... </div></div></body></html')
>>> soup.find("div", {"id": "articlebody"})
<div id="articlebody"> ... </div>
Run Code Online (Sandbox Code Playgroud)
jfs*_*jfs 62
要通过它找到一个元素id:
div = soup.find(id="articlebody")
Run Code Online (Sandbox Code Playgroud)
Jos*_*ier 14
Beautiful Soup 4支持使用该方法的大多数CSS选择器,因此您可以使用选择器,例如:.select()id
soup.select('#articlebody')
Run Code Online (Sandbox Code Playgroud)
如果需要指定元素的类型,可以在选择器之前添加类型选择id器:
soup.select('div#articlebody')
Run Code Online (Sandbox Code Playgroud)
该.select()方法将返回一个元素集合,这意味着它将返回与以下.find_all()方法示例相同的结果:
soup.find_all('div', id="articlebody")
# or
soup.find_all(id="articlebody")
Run Code Online (Sandbox Code Playgroud)
如果您只想选择一个元素,那么您可以使用以下.find()方法:
soup.find('div', id="articlebody")
# or
soup.find(id="articlebody")
Run Code Online (Sandbox Code Playgroud)
小智 11
我认为'div'标签嵌套太多时会出现问题.我试图从facebook html文件解析一些联系人,而Beautifulsoup无法找到带有"fcontent"类的标签"div".
其他类也会发生这种情况.当我一般搜索div时,它只会转换那些没有嵌套的div.
html源代码可以是来自朋友列表的朋友列表(不是你的朋友)的任何页面.如果有人可以测试它并给出一些建议我会非常感激.
这是我的代码,我只是尝试使用类"fcontent"打印标签"div"的数量:
from BeautifulSoup import BeautifulSoup
f = open('/Users/myUserName/Desktop/contacts.html')
soup = BeautifulSoup(f)
list = soup.findAll('div', attrs={'class':'fcontent'})
print len(list)
Run Code Online (Sandbox Code Playgroud)
在beautifulsoup源代码中,这一行允许div嵌套在div中; 所以你对卢卡斯评论的关注是无效的.
NESTABLE_BLOCK_TAGS = ['blockquote', 'div', 'fieldset', 'ins', 'del']
Run Code Online (Sandbox Code Playgroud)
我认为你需要做的是指定你想要的attrs,如
source.find('div', attrs={'id':'articlebody'})
Run Code Online (Sandbox Code Playgroud)
小智 5
我用了:
soup.findAll('tag', attrs={'attrname':"attrvalue"})
Run Code Online (Sandbox Code Playgroud)
作为我的 find/findall 语法;也就是说,除非标签和属性列表之间有其他可选参数,否则这应该没有区别。
| 归档时间: |
|
| 查看次数: |
232042 次 |
| 最近记录: |