python爬虫学习31
昨天写了关于beautiful提取信息的一些用法但是死活传不上来,所以今天就先写了关联选择,改天我重新把信息提取那一小节补上来
六、Beautiful Soup 其二
6-6 关联选择
关联选择就是我们一次选择选择不到我们需要的内容,然后我们就得先选择其中的一个节点,再以这个节点为基准选择它的父节点、子节点、兄弟节点等:
子节点和子孙节点
选取节点之后,若要获得它的直接子节点,可以调用该节点的contents属性:
# 关联选择
from bs4 import BeautifulSoup
html = """
<title>一段html文本</title>
<div class="nav">
<ul>
<li><a href="https://www.qbiqu.com/">首页</a></li>
<li><a href="/modules/article/bookcase.php">我的书架</a></li>
<li><a href="/xuanhuanxiaoshuo/">玄幻小说</a></li>
<li><a href="/xiuzhenxiaoshuo/">修真小说</a></li>
<li><a href="/dushixiaoshuo/">都市小说</a></li>
<li><a href="/chuanyuexiaoshuo/">穿越小说</a></li>
<li><a href="/wangyouxiaoshuo/">网游小说</a></li>
<li><a href="/kehuanxiaoshuo/">科幻小说</a></li>
<li><a href="/paihangbang/">排行榜单</a></li>
<li><a href="/wanben/1_1">完本小说</a></li>
<li><a href="/xiaoshuodaquan/">全部小说</a></li>
<li><script type="text/javascript">yuedu();</script></li>
</ul>
</div>
<div id="banner" style="display:none"></div>
<div class="dahengfu"><script type="text/javascript">list1();</script></div>
"""
s = BeautifulSoup(html, 'lxml')
print(s.ul.contents)
运行结果:可以看到有很多乱七八糟的东西,都被放到了一个列表里返回给了我们:
我们可以从这个列表里面分析出ul节点下有哪些直接子节点
使用children属性可以得到差不多的结果:
# 关联选择 之 children
from bs4 import BeautifulSoup
html = """
<title>一段html文本</title>
<div class="nav">
<ul>
<li><a href="https://www.qbiqu.com/">首页</a></li>
<li><a href="/modules/article/bookcase.php">我的书架</a></li>
<li><a href="/xuanhuanxiaoshuo/">玄幻小说</a></li>
<li><a href="/xiuzhenxiaoshuo/">修真小说</a></li>
<li><a href="/dushixiaoshuo/">都市小说</a></li>
<li><a href="/chuanyuexiaoshuo/">穿越小说</a></li>
<li><a href="/wangyouxiaoshuo/">网游小说</a></li>
<li><a href="/kehuanxiaoshuo/">科幻小说</a></li>
<li><a href="/paihangbang/">排行榜单</a></li>
<li><a href="/wanben/1_1">完本小说</a></li>
<li><a href="/xiaoshuo