0

我得到了从网站上提取的 HTML 标签:

<ul><li>Some Keys in the UL List</li>
</ul>
<li>HKEY_LOCAL_MACHINE\SOFTWARE\Description</li>
<li>HKEY_LOCAL_MACHINE\SOFTWARE\Description\Microsoft</li>
<li>HKEY_LOCAL_MACHINE\SOFTWARE\Description\Microsoft\Rpc</li>
<li>HKEY_LOCAL_MACHINE\SOFTWARE\Description\Microsoft\Rpc\UuidTemporaryData</li>
</ul></ul>

<ul><li>Some objects in the UL LIST</li>
</ul>
<li>_SHuassist.mtx</li>
<li>MuteX.mtx</li>
<li>Something.mtx</li>
<li>Default.mtx</li>
<li>3$5.mtx</li>
</ul></ul>

如何获取<li>标签之间的行(标签之间的文本)<ul>。那时他们没有任何课程可以区分。

我不太了解 BeautifulSoup 和 Regex。

我想要这个结果作为例子:

<li>_SHuassist.mtx</li>
<li>MuteX.mtx</li>
<li>Something.mtx</li>
<li>Default.mtx</li>
<li>3$5.mtx</li>
4

3 回答 3

1

BeautifulSoup

>>> html = textabove
>>> from bs4 import BeautifulSoup as BS
>>> soup = BS(html)
>>> for ultag in soup.findAll('ul'):
...     for litag in ultag.findAll('li'):
...         print litag.text

哪个打印:

UL 列表中的一些键
UL LIST 中的一些对象

要获取后面的<li>标签:

>>> for litag in soup.findAll('li'):
...     if litag.text.endswith('.mtx'):
...         print litag
...         
<li>_SHuassist.mtx</li>
<li>MuteX.mtx</li>
<li>Something.mtx</li>
<li>Default.mtx</li>
<li>3$5.mtx</li>
于 2013-05-20T20:51:21.710 回答
0

你不需要正则表达式来看看python的HTMLParser

于 2013-05-20T20:59:22.387 回答
0

soup.find(text='UL LIST 中的一些对象').findNext('ul').findAll('li')

谢谢@Haidro,你让我得到了一些想法和搜索,感谢你的帮助和时间。

于 2013-05-21T13:49:05.033 回答