【发布时间】:2017-11-03 05:45:52
【问题描述】:
想要获得关键文本的包装。例如,在 HTML 中:
…
<div class=“target”>chicken</div>
<div class=“not-target”>apple</div>
…
并通过基于文本“鸡”,想回<div class=“target”>chicken</div>。
目前,有以下内容来获取 HTML:
import requests
from bs4 import BeautifulSoup
req = requests.get(url).txt
soup = BeautifulSoup(r, ‘html.parser’)
只需执行soup.find_all(‘div’,…) 并遍历所有可用的div 即可找到我正在寻找的包装器。
但不必遍历每个div,根据定义的文本在 HTML 中获取包装器的正确和最佳方式是什么?
提前谢谢你,一定会接受/支持答案!
【问题讨论】:
-
@internety 给了例如
soup.find_all('div', string='chicken')尝试但只返回一个空数组。 -
不要使用花引号
-
在说更多之前,请阅读我指出你的全部答案 :)
-
@internety 但它没有 href 或者说它没有任何其他属性。他们所展示的正是我目前的做法,获取所有“div”并一一搜索我正在寻找的内容。想知道是否有一个搜索解决方案,而不必解析所有内容。
标签: python html css python-2.7 beautifulsoup