举例:
<h2 class='total fl'> '共找到' <span> 1219 </span> '个' <a class="xiaoquCount" href="/xiaoqu/jiading/">嘉定小区</a> </h2>
children的结果是一个可迭代对象:
xiaoqu_num=bs.find('h2',class_='total fl').children print(xiaoqu_num) <list_iterator object at 0x000002049C77B070>
要使用for循环来取得内容:
for c in xiaoqu_num: print(c) 共找到 <span> 1219 </span> 个 <a class="xiaoquCount" href="/xiaoqu/jiading/">嘉定小区</a>
contents返回的是一个子节点的列表,可以直接读取:
xiaoqu_num=bs.find('h2',class_='total fl').contents print(xiaoqu_num) print(xiaoqu_num[0]) ['共找到', <span> 1219 </span>, '个', <a class="xiaoquCount" href="/xiaoqu/jiading/">嘉定小区</a>] '共找到'
两个方法得到的子节点都包括属性、文本、子标签,子标签整体算做一个子节点
区别是一个只能迭代,一个可以迭代,也可以直接取数据
如果要将所有子标签的子孙节点也迭代,使用.descendants
xiaoqu_num=bs.find('h2',class_='total fl').descendants print(xiaoqu_num) for c in xiaoqu_num: print(c) <generator object Tag.descendants at 0x000002049C567A50> 共找到 <span> 1219 </span> 1219 个 <a class="xiaoquCount" href="/xiaoqu/jiading/">嘉定小区</a> 嘉定小区
如果要继续查找子标签,使用.find()
xiaoqu_num=bs.find('h2',class_='total fl').find('span').text print(xiaoqu_num) 1219