【发布时间】:2015-05-08 10:06:20
【问题描述】:
我正在尝试从嵌套的 html 代码中获取所有的 href URL:
...
<li class="dropdown">
<a href="#" class="dropdown-toggle wide-nav-link" data-toggle="dropdown">TEXT_1 <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="class_A"><a title="Title_1" href="http://www.customurl_1.com">Title_1</a></li>
<li class="class_B"><a title="Title_2" href="http://www.customurl_2.com">Title_2</a></li>
...
<li class="class_A"><a title="Title_X" href="http://www.customurl_X.com">Title_X</a></li>
</ul>
</li>
...
<li class="dropdown">
<a href="#" class="dropdown-toggle wide-nav-link" data-toggle="dropdown">TEXT_2 <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="class_A"><a title="Title_1" href="http://www.customurl_1.com">Title_1</a></li>
<li class="class_B"><a title="Title_2" href="http://www.customurl_2.com">Title_2</a></li>
...
<li class="class_A"><a title="Title_X" href="http://www.customurl_X.com">Title_X</a></li>
</ul>
</li>
...
在原始 html 代码中,大约有 15 个“li”块,类“dropdown”, 但我只想从带有 text = TEXT_1 的块中获取 URL。 可以用 BeautifulSoup 抓取所有这些嵌套的 url 吗?
感谢您的帮助
【问题讨论】:
-
你不应该使用正则表达式;使用HTML parser。
-
我已经尝试过使用正则表达式,它可以工作,但结果并不好。
-
不管你的船是什么 - 你可以使用正则表达式,但你不应该。
-
是的,你可以用 BeautifulSoup 做你想做的事,你应该尝试一下,如果遇到困难就回来。
-
您应该使用允许使用 XPath 查询您的 html 的 lxml
标签: python html regex beautifulsoup