Python爬蟲:BeautifulSoup常用操作
阿新 • • 發佈:2018-12-29
此筆記沒有做太多實驗,僅做參考,具體情況還要檢視文件: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