03リゾルバライブラリbeautifulsoup
導入
美しいスープは、HTMLやXMLファイルPythonライブラリからデータを抽出することができます。それはあなたの好みのコンバータの通常のドキュメント・ナビゲーションによって達成することができ、検索、道.Beautifulスープは、数時間または数日節約にあなたをドキュメントを変更します。あなたは美しいSoup3ドキュメントを見てすることができる、美しいスープ3の開発を停止した時間を働いて、公式サイトがBS4に移植し、現在のプロジェクトで美しいスープ4をお勧めします
#インストール美しいスープ
PIPインストールbeautifulsoup4
#パーサインストールHTMLパーサ美しいスープは、Pythonの標準ライブラリには、サードパーティのパーサの数、オペレーティングシステムに応じて、lxmlのとなっているものをサポートしている、あなたはlxmlのをインストールするには、以下の方法を選択することができますサポートしています:
APT-GETは、Pythonをインストールする- $ lxmlの
$ easy_installをlxmlの
$ PIP lxmlのをインストールし
、別のパーサーを選択html5lib、html5lib同じ分析方法と、ブラウザの純粋なPython実装である、あなたはhtml5libインストールするには、次の方法を選択することができます:
$ APT-をPythonのインストール- GET html5lib $ easy_installをhtml5lib $ PIP html5libをインストール
次の表は、公式サイトなどの主要なパーサ、並びにそれらの長所と短所は、あるため高効率で、lxmlのパーサをお勧めします。以前のバージョンとのpython3 Python2.7.3では、以前の3.2.2バージョンでは、インストールまたはlxmlの必要がありますPythonの標準ライブラリのこれらのバージョンは、内蔵のため、HTML html5libは、解析する方法は安定十分ではありません。
パーザー | 使用 | 優位 | 恵まれません |
---|---|---|---|
Pythonの標準ライブラリ | BeautifulSoup(マークアップ、 "html.parser") |
|
|
lxmlのHTMLパーサ | BeautifulSoup(マークアップ、 "lxmlの") |
|
|
lxmlのXMLパーサ | BeautifulSoup(マークアップ、 [ "lxmlの"、 "XML"]) BeautifulSoup(マークアップ、 "XML") |
|
|
html5lib | BeautifulSoup(マークアップ、 "html5lib") |
|
|
中国のドキュメントします。https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
二つの基本的な使い方
html_doc = ""」
<HTML> <HEAD> <TITLE>ヤマネの物語</ TITLE> </ HEAD>
<BODY>
<Pクラス= "タイトル"> <B>ヤマネの物語</ B> </ P>
<Pクラス=「物語」> 3人の妹があったワンス・アポン・ア・タイム、およびそれらの名前はなかった
<a href="http://example.com/elsie" class="sister" id="link1">エルシー< />、
<a href="http://example.com/lacie" class="sister" id="link2">レイシー</a>と
<A HREF = "http://example.com/tillie "クラス="姉妹」ID = "LINK3"> Tillieは</a>を;
。そして、彼らは井戸の底に住んでいた。</ P>
<Pクラス= "物語">。.. </ P>
「」 "
#基本的な使用:フォールトトレラント処理、フォールトトレランス、文書は、HTMLコードが不完全で、モジュールはBeautifulSoupを得ることができるBeautifulSoupを解析上記のコードを使用してエラーを識別するために使用することができる場合を指しオブジェクト、及びくぼみの出力の標準構造に応じて
BS4インポートからBeautifulSoup
スープ= BeautifulSoup(html_doc、「lxmlの」)#フォールトトレラント
RES = soup.prettify()#後退ハンドル、構造化表示
プリント(RES)
三つには、ドキュメントツリーをトラバース
#横断ドキュメントツリー:直接ラベル名の選択によって、ある、速いスピードの選択によって特徴づけられるが、より多くの同じラベルで存在する場合のみ、最初に戻ります #1、の使用 、#2のラベルの名前を取得 タグ属性を取得し、#3 コンテンツタグ取得#4、 #5、ネストされた選択 #6、子ノード、子孫ノード #7、親ノード、先祖ノード #8、兄弟
4つの検索ドキュメントツリー
1、これらのフィルタ
2、find_all(名、attrsに、再帰的、テキスト、** kwargsから)
3、見つける(名、attrsに、再帰的、テキスト、** kwargsから)
図4に示すように、他の方法
5、CSSセレクタ
ファイブは、文書ツリーを変更します
リンクします。https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#id40
シックス概要
#概要:
#1推奨lxmlのライブラリの解析
3つのセレクタについては、#2:タグセレクタ、見つけるとfind_all、CSSセレクタ
1は、タグセレクタスクリーニング機能が弱いですが、高速で
2 、推奨発見、 find_allクエリ結果または一致複数の結果単
3 、CSSセレクタは非常に精通している場合に選択し使用することをお勧めします
#3、ATTRS及びテキスト値GET_TEXTを(覚えてプロパティを取得する一般的に使用される方法)の
導入
美しいスープは、HTMLやXMLファイルPythonライブラリからデータを抽出することができます。それはあなたの好みのコンバータの通常のドキュメント・ナビゲーションによって達成することができ、検索、道.Beautifulスープは、数時間または数日節約にあなたをドキュメントを変更します。あなたは美しいSoup3ドキュメントを見てすることができる、美しいスープ3の開発を停止した時間を働いて、公式サイトがBS4に移植し、現在のプロジェクトで美しいスープ4をお勧めします
#インストール美しいスープ
PIPインストールbeautifulsoup4
#パーサインストールHTMLパーサ美しいスープは、Pythonの標準ライブラリには、サードパーティのパーサの数、オペレーティングシステムに応じて、lxmlのとなっているものをサポートしている、あなたはlxmlのをインストールするには、以下の方法を選択することができますサポートしています:
APT-GETは、Pythonをインストールする- $ lxmlの
$ easy_installをlxmlの
$ PIP lxmlのをインストールし
、別のパーサーを選択html5lib、html5lib同じ分析方法と、ブラウザの純粋なPython実装である、あなたはhtml5libインストールするには、次の方法を選択することができます:
$ APT-をPythonのインストール- GET html5lib $ easy_installをhtml5lib $ PIP html5libをインストール
次の表は、公式サイトなどの主要なパーサ、並びにそれらの長所と短所は、あるため高効率で、lxmlのパーサをお勧めします。以前のバージョンとのpython3 Python2.7.3では、以前の3.2.2バージョンでは、インストールまたはlxmlの必要がありますPythonの標準ライブラリのこれらのバージョンは、内蔵のため、HTML html5libは、解析する方法は安定十分ではありません。
パーザー | 使用 | 優位 | 恵まれません |
---|---|---|---|
Pythonの標準ライブラリ | BeautifulSoup(マークアップ、 "html.parser") |
|
|
lxmlのHTMLパーサ | BeautifulSoup(マークアップ、 "lxmlの") |
|
|
lxmlのXMLパーサ | BeautifulSoup(マークアップ、 [ "lxmlの"、 "XML"]) BeautifulSoup(マークアップ、 "XML") |
|
|
html5lib | BeautifulSoup(マークアップ、 "html5lib") |
|
|
中国のドキュメントします。https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
二つの基本的な使い方
html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>
"""
#基本使用:容错处理,文档的容错能力指的是在html代码不完整的情况下,使用该模块可以识别该错误。使用BeautifulSoup解析上述代码,能够得到一个 BeautifulSoup 的对象,并能按照标准的缩进格式的结构输出
from bs4 import BeautifulSoup
soup=BeautifulSoup(html_doc,'lxml') #具有容错功能
res=soup.prettify() #处理好缩进,结构化显示
print(res)
三 遍历文档树
#遍历文档树:即直接通过标签名字选择,特点是选择速度快,但如果存在多个相同的标签则只返回第一个 #1、用法 #2、获取标签的名称 #3、获取标签的属性 #4、获取标签的内容 #5、嵌套选择 #6、子节点、子孙节点 #7、父节点、祖先节点 #8、兄弟节点
四 搜索文档树
1、五种过滤器
2、find_all( name , attrs , recursive , text , **kwargs )
3、find( name , attrs , recursive , text , **kwargs )
4、其他方法
5、CSS选择器
五 修改文档树
链接:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#id40
六 总结
# 总结:
#1、推荐使用lxml解析库
#2、讲了三种选择器:标签选择器,find与find_all,css选择器
1、标签选择器筛选功能弱,但是速度快
2、建议使用find,find_all查询匹配单个结果或者多个结果
3、如果对css选择器非常熟悉建议使用select
#3、记住常用的获取属性attrs和文本值get_text()的方法