婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python爬蟲beautifulsoup庫使用操作教程全解(python爬蟲基礎入門)

python爬蟲beautifulsoup庫使用操作教程全解(python爬蟲基礎入門)

熱門標簽:400電話辦理費用收費 鎮江人工外呼系統供應商 高德地圖標注字母 千呼ai電話機器人免費 騰訊地圖標注有什么版本 外呼系統前面有錄音播放嗎 深圳網絡外呼系統代理商 申請辦個400電話號碼 柳州正規電銷機器人收費

【python爬蟲基礎入門】系列是對python爬蟲的一個入門練習實踐,旨在用最淺顯易懂的語言,總結最明了,最適合自己的方法,本人一直堅信,總結才會使人提高

1. BeautifulSoup庫簡介

BeautifulSoup庫在python中被美其名為“靚湯”,它和和 lxml 一樣也是一個HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 數據。BeautifulSoup支持Python標準庫中的HTML解析器,還支持一些第三方的解析器,若在沒用安裝此庫的情況下, Python 會使用 Python默認的解析器lxml,lxml 解析器更加強大,速度更快,而BeautifulSoup庫中的lxml解析器則是集成了單獨的lxml的特點,使得功能更加強大。

需要注意的是,Beautiful Soup已經自動將輸入文檔轉換為Unicode編碼,輸出文檔轉換為utf-8編碼。因此在使用它的時候不需要考慮編碼方式,僅僅需要說明一下原始編碼方式就可以了。

使用pip命令工具安裝BeautifulSoup4庫

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ BeautifulSoup # 使用清華大學鏡像源安裝

2. BeautifulSoup庫的主要解析器

在代碼中 html.parser是一種針對于html網頁頁面的解析器,Beautiful Soup庫還有其他的解析器,用于針對不同的網頁

demo = 'https://www.baidu.com'
soup = BeautifulSoup(demo,'html.parser') 

解析器 使用方法 條件
bs4的html解析器 BeautifulSoup(demo,‘html.parser') 安裝bs4庫
lxml的html解析器 BeautifulSoup(demo,‘lxml') pip install lxml
lxml的xml解析器 BeautifulSoup(demo,‘xml') pip install lxml
html5lib的解析器 BeautifulSoup(demo,‘html5lib') pip install html5lib

3. BeautifulSoup的簡單使用

假如有一個簡單的網頁,提取百度搜索頁面的一部分源代碼為例

!DOCTYPE html>
html>
head>
 meta content="text/html;charset=utf-8" http-equiv="content-type" />
 meta content="IE=Edge" http-equiv="X-UA-Compatible" />
 meta content="always" name="referrer" />
 link
href="https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/bdorz/baidu.min.
css" rel="stylesheet" type="text/css" />
 title>百度一下,你就知道 /title>
/head>
body link="#0000cc">
 div >
 div >
 div >
  div >
  a  rel="external nofollow" rel="external nofollow" name="tj_trnews">新聞
/a>
  a  rel="external nofollow" 
name="tj_trhao123">hao123 /a>
  a  rel="external nofollow" name="tj_trmap">地圖 /a>
  a  rel="external nofollow" name="tj_trvideo">視頻 /a>
  a  rel="external nofollow" name="tj_trtieba">貼吧
/a>
  a  rel="external nofollow" name="tj_briicon"
>更多產品 /a>
  /div>
 /div>
 /div>
 /div>
/body>
/html>

結合requests庫和使用BeautifulSoup庫的html解析器,對其進行解析有如下

import requests
from bs4 import BeautifulSoup

# 使用Requests庫加載頁面代碼
r = requests.get('https://www.baidu.com')
r.raise_for_status()  # 狀態碼返回
r.encoding = r.apparent_encoding
demo = r.text

# 使用BeautifulSoup庫解析代碼
soup = BeautifulSoup(demo,'html.parser')  # 使用html的解析器

print(soup.prettify())   # prettify 方式輸出頁面

4. BeautifuSoup的類的基本元素

BeautifulSoup4將復雜HTML文檔轉換成一個復雜的樹形結構,每個節點都是Python對象,BeautifulSoup庫有針對于html的標簽數的特定元素,重點有如下三種

p > ... /p> 
  • Tag
  • NavigableString
  • Comment
  • BeautifulSoup

基本元素 說明
Tag 標簽,最基本的信息組織單元,分別用>和/>標明開頭和結尾,格式:soup.a或者soup.p(獲取a標簽中或者p標簽中的內容)
Name 標簽的名字,

的名字是‘p' 格式為:.name
Attributes 標簽的屬性,字典形式組織,格式:.attrs
NavigableString 標簽內非屬性字符串,>…/>中的字符串,格式:.string
Comment 標簽內的字符串的注釋部分,一種特殊的Comment類型

4.1 Tag

標簽是html中的最基本的信息組織單元,使用方式如下

from bs4 import BeautifulSoup
html = 'https://www.baidu.com'
bs = BeautifulSoup(html,"html.parser")

print(bs.title) # 獲取title標簽的所有內容
print(bs.head) # 獲取head標簽的所有內容
print(bs.a)  # 獲取第一個a標簽的所有內容
print(type(bs.a))	# 類型

在Tag標簽中最重要的就是html頁面中的name哈attrs屬性,使用方式如下

print(bs.name)
print(bs.head.name)			# head 之外對于其他內部標簽,輸出的值便為標簽本身的名稱
print(bs.a.attrs) 			# 把 a 標簽的所有屬性打印輸出了出來,得到的類型是一個字典。
print(bs.a['class']) 		# 等價 bs.a.get('class') 也可以使用get方法,傳入屬性的名稱,二者是等價的
bs.a['class'] = "newClass" # 對這些屬性和內容進行修改
print(bs.a)
del bs.a['class']			# 對這個屬性進行刪除
print(bs.a)

4.2 NavigableString

NavigableString中的string方法用于獲取標簽內部的文字

from bs4 import BeautifulSoup
html = 'https://www.baidu.com'
bs = BeautifulSoup(html,"html.parser")
print(bs.title.string)
print(type(bs.title.string))

4.3 Comment

Comment 對象是一個特殊類型的 NavigableString 對象,其輸出的內容不包括注釋符號,用于輸出注釋中的內容

from bs4 import BeautifulSoup
html = 'https://www.baidu.com'
bs = BeautifulSoup(html,"html.parser")
print(bs.a)
# 標簽中的內容a  rel="external nofollow" rel="external nofollow" name="tj_trnews">!--新聞-->/a>
print(bs.a.string) 		# 新聞
print(type(bs.a.string)) # class 'bs4.element.Comment'>

5. 基于bs4庫的HTML內容的遍歷方法

在HTML中有如下特定的基本格式,也是構成HTML頁面的基本組成成分

而在這種基本的格式下有三種基本的遍歷流程

  • 下行遍歷
  • 上行遍歷
  • 平行遍歷

三種種遍歷方式分別是從當前節點出發。對之上或者之下或者平行的格式以及關系進行遍歷

5.1 下行遍歷

下行遍歷有三種遍歷的屬性,分別是

  • contents
  • children
  • descendants

屬性 說明
.contents 子節點的列表,將所有兒子節點存入列表
.children 子節點的迭代類型,用于循環遍歷兒子節點
.descendants 子孫節點的迭代類型,包含所有子孫節點,用于循環遍歷

使用舉例

soup = BeautifulSoup(demo,'html.parser') 

# 循環遍歷兒子節點
for child in soup.body.children:
	print(child)

# 循環遍歷子孫節點 
for child in soup.body.descendants:
 print(child)
 
# 輸出子節點的列表形式
print(soup.head.contents)
print(soup.head.contents[1])	# 用列表索引來獲取它的某一個元素

5.2 上行遍歷

上行遍歷有兩種方式

  • parent
  • parents

屬性 說明
.parent 節點的父親標簽
.parents 節點先輩標簽的迭代類型,用于循環遍歷先輩節點,返回一個生成器
使用舉例

soup = BeautifulSoup(demo,'html.parser') 

for parent in soup.a.parents:
	if parent is None:
		parent(parent)
	else:
		print(parent.name)

5.3 平行遍歷

平行遍歷有四種屬性

  • next_sibling
  • previous_sibling
  • next_siblings
  • previous_siblings

屬性 說明
.next_sibling 返回按照HTML文本順序的下一個平行節點標簽
.previous_sibling 返回按照HTML文本順序的上一個平行節點標簽
.next_siblings 迭代類型,返回按照html文本順序的后續所有平行節點標簽
.previous_siblings 迭代類型,返回按照html文本順序的前序所有平行節點標簽

平行遍歷舉例如下

for sibling in soup.a.next_sibling:
	print(sibling)		# 遍歷后續節點
	
for sibling in soup.a.previous_sibling:
	print(sibling)		# 遍歷

5.4 其他遍歷

屬性 說明
.strings 如果Tag包含多個字符串,即在子孫節點中有內容,可以用此獲取,而后進行遍歷
.stripped_strings 與strings用法一致,可以去除掉那些多余的空白內容
.has_attr 判斷Tag是否包含屬性

6. 文件樹搜索

使用soup.find_all(name,attrs,recursive,string,**kwargs)方法,用于返回一個列表類型,存儲查找的結果

  • name:對標簽名稱的檢索字符串
  • attrs:對標簽屬性值得檢索字符串,可標注屬性檢索
  • recursive:是否對子孫全部檢索,默認為
  • Truestring:用與在信息文本中特定字符串的檢索

6.1 name參數

如果是指定的字符串:會查找與字符串完全匹配的內容,如下

a_list = bs.find_all("a")
print(a_list)		# 將會返回所有包含a標簽的內容

如果是使用正則表達式:將會使用BeautifulSoup4中的search()方法來匹配內容,如下

from bs4 import BeautifulSoup
import re

html = 'https://www.baidu.com'
bs = BeautifulSoup(html,"html.parser")
t_list = bs.find_all(re.compile("a"))
for item in t_list:
 	print(item)		# 輸出列表

如果傳入一個列表:BeautifulSoup4將會與列表中的任一元素匹配到的節點返回,如下

t_list = bs.find_all(["meta","link"])
for item in t_list:
	print(item)

如果傳入一個函數或者方法:將會根據函數或者方法來匹配

from bs4 import BeautifulSoup

html = 'https://www.baidu.com'
bs = BeautifulSoup(html,"html.parser")
def name_is_exists(tag):
 	 return tag.has_attr("name")
t_list = bs.find_all(name_is_exists)
for item in t_list:
 	 print(item)

6.2 attrs參數

并不是所有的屬性都可以使用上面這種方式進行搜索,比如HTML的data屬性,用于指定屬性搜索

t_list = bs.find_all(data-foo="value")

6.3 string參數

通過通過string參數可以搜索文檔中的字符串內容,與name參數的可選值一樣,string參數接受字符串,正則表達式,列表

from bs4 import BeautifulSoup
import re

html = 'https://www.baidu.com'
bs = BeautifulSoup(html, "html.parser")
t_list = bs.find_all(attrs={"data-foo": "value"})
for item in t_list:
 	print(item)
t_list = bs.find_all(text="hao123")
for item in t_list:
 	print(item)
t_list = bs.find_all(text=["hao123", "地圖", "貼吧"])
for item in t_list:
 	print(item)
t_list = bs.find_all(text=re.compile("\d"))
for item in t_list:
 	print(item)

使用find_all()方法的時,常用到正則表達式的形式import re如下所示

soup.find_all(sring = re.compile('pyhton'))		# 指定查找內容

# 或者指定使用正則表達式要搜索的內容
sring = re.compile('pyhton')		# 字符為python
soup.find_all(string)				# 調用方法模板

6.4 常用的fiid()方法如下

7. 總結參考

此文列舉了BeautifulSoup庫在爬蟲中的基本使用,不正確之處望指教,參考

到此這篇關于python爬蟲beautifulsoup庫使用操作教程全解(python爬蟲基礎入門)的文章就介紹到這了,更多相關python爬蟲beautifulsoup庫內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python BeautifulSoup基本用法詳解(通過標簽及class定位元素)
  • python beautiful soup庫入門安裝教程
  • python爬蟲學習筆記--BeautifulSoup4庫的使用詳解
  • Python爬蟲進階之Beautiful Soup庫詳解
  • python網絡爬蟲精解之Beautiful Soup的使用說明

標簽:平頂山 哈爾濱 烏蘭察布 海南 合肥 郴州 大慶 烏蘭察布

巨人網絡通訊聲明:本文標題《python爬蟲beautifulsoup庫使用操作教程全解(python爬蟲基礎入門)》,本文關鍵詞  python,爬蟲,beautifulsoup,庫,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python爬蟲beautifulsoup庫使用操作教程全解(python爬蟲基礎入門)》相關的同類信息!
  • 本頁收集關于python爬蟲beautifulsoup庫使用操作教程全解(python爬蟲基礎入門)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日韩国产中文| 精品久久久久一区| 国产美女av一区二区三区| 亚洲电影在线播放| 亚洲人成人一区二区在线观看| 一区二区三区精密机械公司| 亚洲国产欧美日韩另类综合| 日本视频中文字幕一区二区三区| 国产精品资源在线| 色综合亚洲欧洲| 91国产免费观看| 欧美久久一二三四区| 精品一区二区三区久久| 国产精品乱人伦| 欧美日韩亚洲高清一区二区| 蜜臀精品久久久久久蜜臀| 亚洲国产成人私人影院tom| 欧美午夜一区二区三区| 国内久久婷婷综合| 亚洲精品一二三区| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲精品免费一二三区| 欧美视频三区在线播放| 六月丁香婷婷久久| 亚洲色图一区二区三区| 精品sm捆绑视频| 欧美在线观看一区二区| 国内成人精品2018免费看| 亚洲人成人一区二区在线观看| 欧美一区二区免费视频| 色天使色偷偷av一区二区| 理论电影国产精品| 亚洲成人综合网站| 综合电影一区二区三区 | 2020国产精品| 欧美日韩高清一区二区| aaa欧美日韩| 韩国精品免费视频| 首页国产欧美久久| 国产精品福利av| 亚洲精品一区二区三区香蕉| 中文字幕精品综合| 精品国产亚洲在线| 这里只有精品视频在线观看| 91亚洲永久精品| 国产福利视频一区二区三区| 午夜av一区二区| 洋洋成人永久网站入口| 椎名由奈av一区二区三区| 久久老女人爱爱| 26uuu成人网一区二区三区| 欧美夫妻性生活| 欧美日韩国产美女| 欧美日韩在线观看一区二区| 91国在线观看| 欧美体内she精高潮| 日本韩国欧美在线| 色综合天天综合网国产成人综合天| 国产成都精品91一区二区三| 激情综合网激情| 国产乱子伦视频一区二区三区| 美脚の诱脚舐め脚责91 | 日本女人一区二区三区| 亚洲成人动漫在线观看| 亚洲影院久久精品| 亚洲国产日日夜夜| 五月天亚洲精品| 日韩国产精品久久久久久亚洲| 日韩**一区毛片| 激情五月激情综合网| 狠狠色狠狠色综合| 成人精品视频一区| 在线视频你懂得一区| 在线不卡的av| 精品美女一区二区三区| 国产三级精品视频| 亚洲另类色综合网站| 亚洲成人激情社区| 欧美96一区二区免费视频| 国产精品456露脸| 99久久er热在这里只有精品15| 成人永久aaa| 欧美色精品在线视频| 欧美日韩一区二区三区四区| 欧美亚洲尤物久久| 欧美日韩国产一二三| 欧美高清视频一二三区| 欧美极品少妇xxxxⅹ高跟鞋| 久久精品一级爱片| 日韩免费电影网站| 亚洲国产成人私人影院tom| 亚洲免费观看高清完整| 亚洲午夜成aⅴ人片| 亚洲国产成人tv| 免费国产亚洲视频| 欧美在线看片a免费观看| 久久久久久久久久久久久久久99| 亚洲精品免费在线播放| 国产真实乱子伦精品视频| 欧洲精品中文字幕| 久久精品亚洲一区二区三区浴池| 一区二区三区中文在线| 韩国精品主播一区二区在线观看 | 91黄色免费版| 精品日韩一区二区三区免费视频| 中文一区一区三区高中清不卡| 亚洲成av人片一区二区梦乃| 午夜视频一区二区| 成人免费视频网站在线观看| 精品久久久久香蕉网| 亚洲一二三四在线观看| 福利电影一区二区| 欧美精品一级二级三级| 久久亚洲精品国产精品紫薇| 亚洲蜜臀av乱码久久精品| 国内精品伊人久久久久av一坑 | www国产精品av| 亚洲国产精品欧美一二99| 成人综合在线网站| 精品国产一区二区精华| 日产精品久久久久久久性色| 91视频国产资源| 中文在线资源观看网站视频免费不卡| 蜜桃av噜噜一区| 欧美剧情电影在线观看完整版免费励志电影 | 欧美中文一区二区三区| 亚洲日本在线天堂| 豆国产96在线|亚洲| 久久久久久影视| 久久99国内精品| 欧美妇女性影城| 香蕉成人伊视频在线观看| 在线精品国精品国产尤物884a| 一区二区三区四区在线| 成人av动漫网站| 久久精品人人做| 国产精品18久久久| 欧美激情一区三区| 国产不卡视频在线观看| 久久麻豆一区二区| 国产91对白在线观看九色| 久久亚洲二区三区| 福利视频网站一区二区三区| 欧美国产日产图区| 成人晚上爱看视频| 一区二区欧美精品| 欧美高清dvd| 国产乱对白刺激视频不卡| 国产精品理论在线观看| 99久久99久久免费精品蜜臀| 日韩久久一区二区| 欧美日韩高清一区二区| 精品制服美女久久| 久久久www免费人成精品| 国产精品自拍av| 亚洲免费大片在线观看| 91精品免费观看| 激情成人综合网| 久久精品网站免费观看| 色呦呦日韩精品| 美女任你摸久久| 亚洲欧洲精品成人久久奇米网 | 欧美日韩免费观看一区三区| 日韩电影在线看| 国产精品国产成人国产三级 | 波多野结衣在线一区| 亚洲成av人**亚洲成av**| 欧美一级免费大片| 国产精品一区二区在线播放| 亚洲黄色片在线观看| 日韩精品一区二区三区三区免费| 国产成人无遮挡在线视频| 亚洲最大的成人av| 欧美国产日产图区| 日韩午夜av一区| 91麻豆国产在线观看| 国产乱码精品一区二区三区忘忧草| 亚洲尤物视频在线| 欧美国产一区二区在线观看| 欧美视频自拍偷拍| 成人性视频免费网站| 亚洲一区二区精品久久av| 亚洲精品在线观看视频| 欧美最猛性xxxxx直播| 国产成人超碰人人澡人人澡| 日本欧美加勒比视频| 一区二区三区蜜桃| 国产精品久久毛片av大全日韩| 精品国免费一区二区三区| 免费日本视频一区| 亚洲精品中文在线观看| 国产欧美精品日韩区二区麻豆天美| 欧美猛男超大videosgay| 99久久精品99国产精品| 国产成人亚洲综合色影视| 麻豆成人免费电影| 日韩精品91亚洲二区在线观看| 亚洲精品中文字幕乱码三区| 欧美激情一区不卡| 日韩视频一区在线观看|