前言 本篇詳細介紹beautifulsoup4的功能,從最基礎(chǔ)的開始講起,,讓小伙伴們都能入門 一,、讀取HTML頁面 1.先寫一個簡單的html頁面,,把以下內(nèi)容copy出來,,保存為html格式文件 <meta charset="UTF-8"> <!-- for HTML5 --> 3.用python的open函數(shù)讀取這個html,如下圖能正確打印出來,,說明讀取成功了 二,、解析器:html.parser 1.用BeautifulSoup的構(gòu)造方法,就能得到一個文檔的對象, 可以傳入一段字符串或一個文件句柄 2.如果我們調(diào)用BeautifulSoup這個類的時候,不帶"html.parser"參數(shù),,這時候會有個waring的,,下圖紅色框框區(qū)域給出了建議。 3.html.parser這個是python庫里面自帶的解析器,,無需安裝,。 4.prettify()這個方法是把文件解析成html格式,用html的標準格式輸出(有縮進的) 三,、對象的種類 1.Beautiful Soup將復(fù)雜HTML文檔轉(zhuǎn)換成一個復(fù)雜的樹形結(jié)構(gòu),每個節(jié)點都是Python對象,所有對象可以歸納為4種: Tag : 標簽對象,,如:<p class="title"><b>yoyoketang</b></p>,這就是一個標簽 2.弄清楚了這四個對象,,后面所有的操作但是基于這四個(其實最后面一個comment可以忽略,,幾乎用不到) 四、Tag對象 1.html里面識別一個tag,,其實一般像這種: <p class="title"><b>yoyoketang</b></p> <b>yoyoketang</b> <head><title>yoyo ketang</title></head> 以上這些都是tag,很明顯都是以<xx 開頭</xx> 結(jié)尾這種,,就是一個完整的tag 2.通過標簽的名稱,來獲取tag對象 3.如果有多個相同的標簽名稱,,返回的是第一個 五,、Tag對象:name屬性 1.tag的name屬性,每一個tag都有name屬性,,用.name獲取,,如上面的三個name屬性分別為p,b,head。也就是<xx開頭的,,這里的xx就是它的name屬性 2.html是一個樹狀結(jié)構(gòu)的,,每個tag都有屬性,整個html對象也有name屬性,,它的屬性是:[document] 六,、Tag對象:Attributes 1.tag.attrs可以打印出所有的屬性,可以看出是個字典格式的 2.那么獲取其中的某一個屬性,,就跟操作字典一樣,,如:tag["href"] 3.由于class屬性一般可以為多個,中間空格隔開,,所以class屬性獲取的是一個list類型:[u'sister'] 4.tag.string,,這里Tag對象變成NavigableString對象了,呵呵小伙伴們要懵逼了吧,。其實打印出來就是一個字符串,。 七,、發(fā)福利 1.爬糗事百科首頁的段子 # coding:utf-8 python接口自動化QQ群:226296743 《selenium高級自動化》已出書,可以購買正版(點左下角閱讀原文)https://yuedu.baidu.com/ebook/0f6a093b7dd184254b35eefdc8d376eeaeaa17e3
|
|