我正在使用bs4进行网页抓取。 我在标签中获取所需的字符串没有问题,但似乎有一个字符串没有任何关联的标签(可能是我错了)。
所以html格式如下所示:
<li class='A'>
<span class='B'> Some_string_here </span>
" MY DESIRED STRING "
<div class='C'> Some_string_here </div>
</li>
我知道如何在这里获得&#34;一些字符串&#34;但我不知道如何获得&#34;我的渴望&#34;
提前多多感谢!!
答案 0 :(得分:1)
有多种方法可以做到这一点:
>>> 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']
并且可能有其他几种方式......