【发布时间】:2018-09-06 12:27:21
【问题描述】:
我是网络抓取的新手,遇到了一个问题
我正在使用 BeautifulSoup 来抓取网页。我想获取其中包含文本的节点。
我尝试过像这样使用 get_text() 方法
soup = BeautifulSoup(open('FAQ3.html'), "html.parser")
body = soup.find('body')
for i in body:
if type(i) != bs4.element.Comment and type(i)!= bs4.element.NavigableString :
if i.get_text():
print(i)
但是 get_text 正在给节点,即使它的子节点中有文本,
示例 html:
<div>
<div id="header">
<script src="./FAQ3_files/header-home.js"></script>
</div>
<div>
<div>
this node contain text
</div>
</div>
</div>
在检查最上面的 div 本身时,它返回整个节点,因为最里面有文本,
如何遍历所有节点并仅过滤其中实际包含文本的节点?
【问题讨论】:
标签: python-3.x web-scraping beautifulsoup