Python3處理HTML獲取所需內容


處理HTML頁面,經常使用的便是使用beautifulsoup庫

pip install beautifulsoup4

執行上述語句下載bs4庫

一般請求下來的所需數據都位於tbody的tr標簽里,下面給出對應代碼:

 soup = BeautifulSoup(r.text, "html.parser")
    informationlist = []
    for tr in soup.find('tbody').children:
        #出現/n情況,/n在soup中被認為是子節點之一
        if(tr!='\n'):
            tds = tr('td')
            informationlist.append([tds[0].string, tds[1].string, tds[8].string])
    for i in range(len(informationlist)):
        information = informationlist[i]
        print("{:^10}\t{:^6}\t{:^10}".format(information[0], information[1], information[2]))

Tag:標簽,最基本的信息組織單元,分別用<>和</>標明開頭和結尾

Name:標簽的名字,<p>…</p>的名字是'p',格式:<tag>.name

Attributes:標簽的屬性,字典形式組織,格式:<tag>.attrs

NavigableString:標簽內非屬性字符串,<>…</>中字符串,格式:<tag>.string

Comment:標簽內字符串的注釋部分,一種特殊的Comment類型

遍歷方法:

for child in soup.body.children: 
    print(child)
for child in soup.body.descendants: 
    print(child)

下面給出一些常用的屬性

.contents:子節點的列表,將<tag>所有兒子節點存入列表

.children:子節點的迭代類型,與.contents類似,用於循環遍歷兒子節點

.descendants:子孫節點的迭代類型,包含所有子孫節點,用於循環遍歷

.parent:節點的父親標簽

.parents:節點先輩標簽的迭代類型,用於循環遍歷先輩節點

.next_sibling:返回按照HTML文本順序的下一個平行節點標簽

.previous_sibling:返回按照HTML文本順序的上一個平行節點標簽

.next_siblings:迭代類型,返回按照HTML文本順序的后續所有平行節點標簽

.previous_siblings:迭代類型,返回按照HTML文本順序的前續所有平行節點標簽


免責聲明!

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



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