Python 网络爬虫笔记3 -- Beautiful Soup库
生活随笔
收集整理的這篇文章主要介紹了
Python 网络爬虫笔记3 -- Beautiful Soup库
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Python 網(wǎng)絡(luò)爬蟲筆記3 – Beautiful Soup庫
Python 網(wǎng)絡(luò)爬蟲系列筆記是筆者在學(xué)習(xí)嵩天老師的《Python網(wǎng)絡(luò)爬蟲與信息提取》課程及筆者實(shí)踐網(wǎng)絡(luò)爬蟲的筆記。
課程鏈接:Python 網(wǎng)絡(luò)爬蟲與信息提取
參考文檔:
Requests 官方文檔(英文)
Requests 官方文檔(中文)
Beautiful Soup 官方文檔
re 官方文檔
Scrapy 官方文檔(英文)
Scrapy 官方文檔(中文)
一、Beautiful Soup 庫安裝
介紹: Beautiful Soup庫主要是用來處理使用requests庫獲得的HTML網(wǎng)頁文件
pip 安裝:
pip install beautifulsoup4導(dǎo)入模塊:
from bs4 import BeautifulSoup測試:
import requests from bs4 import BeautifulSoupr = requests.get('https://python123.io/ws/demo.html') demo = r.text soup = BeautifulSoup(demo, 'html.parser') # 以樹形的結(jié)構(gòu)打印HTML文件,Tag元素也可使用prettify()方法 print(soup.prettify()) print(soup.a.prettify())二、Beautiful Soup 庫基礎(chǔ)
1、標(biāo)簽樹
- 標(biāo)簽:一對<>及其中間的內(nèi)容
| Tag | 標(biāo)簽,最基本的信息組織單元,分別用<>和</>標(biāo)明開頭和結(jié)尾 |
| Name | 標(biāo)簽的名字,< p >…< /p >的名字是’p’,格式:< tag>.name |
| Attributes | 標(biāo)簽的屬性,字典形式組織,格式:< tag>.attrs |
| NavigableString | 標(biāo)簽內(nèi)非屬性字符串,<>…</>中字符串,格式:< tag>.string |
| Comment | 標(biāo)簽內(nèi)字符串的注釋部分,一種特殊的Comment類型。格式:<!-- xxxx – > |
- 標(biāo)簽樹:不同層級的標(biāo)簽組成的樹形結(jié)構(gòu),構(gòu)成HTML網(wǎng)頁
2、解析器
解析HTML網(wǎng)頁的解析器,自帶解析器為 ‘html.parser’,可以安裝其它解析器。
| bs4的HTML解析器 | BeautifulSoup(mk,‘html.parser’) | bs4庫自帶 |
| lxml的HTML解析器 | BeautifulSoup(mk,‘lxml’) | pip install lxml |
| lxml的XML解析器 | BeautifulSoup(mk,‘xml’) | pip install lxml |
| html5lib的解析器 | BeautifulSoup(mk,‘html5lib’) | pip install html5lib |
三、HTML 內(nèi)容遍歷
1、下行遍歷
| .contents | 子節(jié)點(diǎn)的列表,將所有兒子節(jié)點(diǎn)存入列表 |
| .children | 子節(jié)點(diǎn)的迭代類型,與.contents類似,用于循環(huán)遍歷兒子節(jié)點(diǎn) |
| .descendants | 子孫節(jié)點(diǎn)的迭代類型,包含所有子孫節(jié)點(diǎn),用于循環(huán)遍歷 |
2、上行遍歷
| .parent | 節(jié)點(diǎn)的父親標(biāo)簽 |
| .parents | 節(jié)點(diǎn)先輩標(biāo)簽的迭代類型,用于循環(huán)遍歷先輩節(jié)點(diǎn) |
3、平行遍歷
node: 平行遍歷的對象是同一節(jié)點(diǎn)下的平行節(jié)點(diǎn)
| .next_sibling | 返回按照HTML文本順序的下一個平行節(jié)點(diǎn)標(biāo)簽 |
| .previous_sibling | 返回按照HTML文本順序的上一個平行節(jié)點(diǎn)標(biāo)簽 |
| .next_siblings | 迭代類型,返回按照HTML文本順序的后續(xù)所有平行節(jié)點(diǎn)標(biāo)簽 |
| .previous_siblings | 迭代類型,返回按照HTML文本順序的前續(xù)所有平行節(jié)點(diǎn)標(biāo)簽 |
總結(jié)
以上是生活随笔為你收集整理的Python 网络爬虫笔记3 -- Beautiful Soup库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 网络爬虫笔记2 -- Re
- 下一篇: 基本类型与字符串的相互转换