我从网站上获取了这个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>
答案 0 :(得分: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
打印哪些:
Some Keys in the UL List Some objects in the 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>
答案 1 :(得分:0)
你不需要使用正则表达式来看看python的HTMLParser
答案 2 :(得分:0)
soup.find(text ='UL LIST中的某些对象')。findNext('ul')。findAll('li')
谢谢@Haidro,你让我得到一些想法和搜索,感谢你的帮助和时间。