beautifulsoup 查詢子節點 .children與 .contents


 

舉例:

<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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM