爬虫類--- lxmlの簡単な操作

  いくつか前者は美しいスープも練習の多くの例を実施し、いくつかの簡単な操作を書いて、今日lxmt新しいPythonライブラリの導入は、lxmtはああデータをクロール行うことができます

 

lxmlのは何ですか

 lxmlのは、HTMLやXML構文解析をサポートしてのpythonの解析ライブラリですXPathの分析方法をサポートし、分析効率が非常に高いです。

lxmlの研究資料:https://lxml.de/

 

XPathは何ですか

XPathは、我々はすべて知っていると信じて、それが右側にあるときの測位方法は、XPath自動テストを行っているがあります。

XPathの、XMLパス言語、つまりXMLパス言語の完全な名前は、それがXMLドキュメントの言語で見つけた情報です。もともとは、XML文書を検索するために使用されたが、それはまた、HTMLドキュメントを検索するには適用されます。XPathの選択はまた、ほぼ、文字列、数値、およびマッチング・ノード、シーケンス処理時間のために100以上の組み込み関数を提供し、それは非常に簡潔な表現の経路選択を提供し、非常に強力です私たちがターゲットにしたいすべてのノード、あなたが選択するために、XPathを使用することができます。

XPathの共通のルール

表現 説明
ノード名 このノードのすべての子ノードを選択します
/ 現在のノードから選択された直接の子ノード
// 選択したノードから現在のノードの子孫
現在のノードを選択します
。.. 現在のノードの親を選択します
@ [プロパティ]を選択します
* ワイルドカードは、すべての要素ノードおよび要素名を選択
@ * すべてのプロパティを選択します
[プロパティ@] 指定された属性を持つすべての要素を選択します
[プロパティ= '値' @] 与えられた特定の属性値を持つすべての要素を選択します

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XPathの研究資料:https://www.w3.org/TR/xpath/all/

 

lxmlのインストール

Windowsのインストール

インストールLxmt 
ピップをlxmlのインストール

#を使用すると、障害が続く場合は、libxml2のライブラリ情報が不足していることを選択し、車輪のインストールhttps://www.lfd.uci.edu/~gohlke/pythonlibs/ Pythonのlxmlのバージョンの対応するバージョンダウンロード

ダウンロードコンテンツをインストールピップを(lxmlのバージョン)

 

Liunxのインストール

ピップをインストールすることで 
lxmlのインストールPIP

 

使用するlxmlのシンプル

< HTML > 
< ボディ> 
< DIV > 
< UL > 
< クラス= "項目-0" > < HREF = "link1.html" >パイソン</ A > </ > < リチウムのクラス= "項目1" > < HREF = "link2.html" >パイソン爬虫</ A > </ > < リチウムのクラス= "項目2" > <HREF = "link3.html" > Pythonのテスト

</ A > </ > 
< リチウムのクラス= "項目-3" > < HREF = "link4.html" >パイソン全栈</ A > </ > </ UL > </ DIV > </ ボディ> </ HTML >



上記の単純なHTMLの簡単なことでlxml.etreeで理解します

リーのためのコンテンツのタグに対応するコンテンツは、XPathによって見出さLXML最初解析されたHTML etreeを使用して

1、すべてのノードは、Liを取得します

导入lxmlの
から lxmlのインポートetree
 解析 
HTML = etree.HTML(テキスト) 
= html.xpath(結果' //リチウム' 


代码结果:
[ <0x3a0a8c8の要素LI>、<0x3a0a888の要素のLI>、<素子L 0x3a0a988で>、<0x3a0a9c8の要素LI>]

ここでは、直接添字によって、オブジェクトの一つを取り出すことがあれば、各要素は、要素オブジェクトであるリストの形式を、見ることができます

2、子ノードを取得

#のインポートlxmlの
から lxmlのインポートetreeの
 の構文解析 
HTML = etree.HTML(テキスト)
#をリー内のすべてのタグを検索 
= html.xpath(結果' //リー/ A ' 


コードの結果を:
[ <李ATは、Elementを0x3a0a8c8> <素子L 0x3a0a888に>、 <0x3a0a988の要素LI>、<0x3a0a9c8の要素のLI>]

3、ラベル李の下にあるすべてのテキストを取得

#のインポートlxmlの
から lxmlのインポートetreeの
 の構文解析 
HTML = etree.HTML(テキスト)テキストの全文で得られた() 
結果= html.xpath(' //リー/ A /テキスト()' 


:コードの結果
[ 今日の天気を天気は明日明日の天気の翌日週末の天気" ]

4、物件取得

#のインポートlxmlの
から lxmlのインポートetreeの
 の構文解析 
HTML = etree.HTML(テキスト)
#は、属性値によって、対応する属性を取得し、@ 
= html.xpath(結果' //リー/ A / @ hrefのを' 

コード結果:
[ " link1.html ' ' link2.html ' ' link3.html ' ' link4.html " ]

 

おすすめ

転載: www.cnblogs.com/qican/p/11190832.html