1. 程式人生 > >Python爬蟲:BeautifulSoup常用操作

Python爬蟲:BeautifulSoup常用操作

此筆記沒有做太多實驗,僅做參考,具體情況還要檢視文件:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#id4

初始化:

from bs4 import BeautifulSoup 
# 從檔案獲取
soup = BeautifulSoup(open("html.txt", "r", encoding='utf-8'), 'lxml')

# 從string獲取
html_str = '''
<html><body>
<div>
我們的祖國是花園
</div>
</body></html>
'''
soup = BeautifulSoup(html_str, 'lxml') type(soup) # bs4.BeautifulSoup物件 type(soup.div) # bs4.element.Tag物件 #這是一個通用獲取Tag物件內容的方法 #這個方法能保證擁有正確換行 #並且這個方法獲取到的string會以一個換行結尾 def getContentOfTag(tag): '''獲取一個Tag物件的內容''' content = '' if tag != None: for line in tag.stripped_strings:
content += line + '\n' return content

尋找所有某類的方法:

# 查詢所有,返回列表
reses = tag.find_all("span",class_="RichText ztext CopyrightRichText-richText")
# 查詢第一個,相當於reses[0]
res = tag.find("span",class_="RichText ztext CopyrightRichText-richText")

#獲取Tag的所有內容,包括直接內容和其子標籤內容,沒有換行
tag.get_text(
) #如果其只有一個子標籤有內容(包括其自身的內容),若是有多個子標籤有內容,這個會返回None tag.string #獲取其內容和其子標籤內容的列表 tag.strings tag.contents