使用bs4进行Web Scraping。如果字符串没有与之关联的标记,我该怎么办?

时间:2014-12-02 21:09:17

标签: python html beautifulsoup

我正在使用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;

提前多多感谢!!

1 个答案:

答案 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 "'

使用stringsstripped_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']

并且可能有其他几种方式......