我对使用 Python/BeautifulSoup 进行网络解析完全陌生。我有一个 HTML,其(部分)代码如下:
<div id="pages">
<ul>
<li class="active"><a href="example.com">Example</a></li>
<li><a href="example.com">Example</a></li>
<li><a href="example1.com">Example 1</a></li>
<li><a href="example2.com">Example 2</a></li>
</ul>
</div>
我必须去参观每个链接(基本上每个<li>
元素),直到没有更多的元素为止<li>
存在标签。每次点击链接时,都会显示相应的<li>
元素的类别为“活动”。我的代码是:
from bs4 import BeautifulSoup
import urllib2
import re
landingPage = urllib2.urlopen('somepage.com').read()
soup = BeautifulSoup(landingPage)
pageList = soup.find("div", {"id": "pages"})
page = pageList.find("li", {"class": "active"})
这段代码给了我第一个<li>
列表中的项目。我的逻辑是我不断检查是否next_sibling
不是无。如果不是 None,我将创建一个 HTTP 请求href
的属性<a>
那个兄弟姐妹中的标签<li>
。这将使我进入下一页,依此类推,直到没有更多的页面。
但我不知道如何获得next_sibling
of the page
上面给出的变量。是吗page.next_sibling.get("href")
或类似的东西?我查看了文档,但不知何故找不到它。有人可以帮忙吗?
Use find_next_sibling()并明确您想要查找哪个同级元素:
next_li_element = page.find_next_sibling("li")
next_li_element
会成为None
if the page
对应于最后一个活动的li
:
if next_li_element is None:
# no more pages to go
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)