我正在使用bs4进行网页抓取。我在标签中获取所需的字符串没有问题,但似乎有一个字符串没有任何关联的标签(也许我错了)。
所以html格式看起来像这样:
<li class='A'>
<span class='B'> Some_string_here </span>
" MY DESIRED STRING "
<div class='C'> Some_string_here </div>
</li>
我知道如何获得"这里的一些字符串",但我不知道如何获得"我的愿望字符串"
提前非常感谢!!
有多种方法可以做到这一点:
>>> s = """
... <li class='A'>
... <span class='B'> Some_string_here </span>
... " MY DESIRED STRING "
... <div class='C'> Some_string_here </div>
... </li>
... """
>>> from bs4 import BeautifulSoup
>>> tree = BeautifulSoup(s)
使用contents
:
>>> tree.li.contents
['n', <span class="B"> Some_string_here </span>, 'n " MY DESIRED STRING "n ', <div class="C"> Some_string_here </div>, 'n']
>>> tree.li.contents[2].strip()
'" MY DESIRED STRING "'
使用 strings
或 stripped_strings
:
>>> list(tree.li.stripped_strings)
['Some_string_here', '" MY DESIRED STRING "', 'Some_string_here']
使用find_all
:
>>> tree.li.find_all(text=True, recursive=False)
['n', 'n " MY DESIRED STRING "n ', 'n']
可能还有其他几种方法...