Scrapy-selectors
スクレイピー-セレクター
説明
Webページをスクレイピングするときは、XPath式またはCSS式を使用して実現される selectors と呼ばれるメカニズムを使用して、HTMLソースの特定の部分を抽出する必要があります。 セレクタは、Python言語でXMLとHTMLを処理する lxml ライブラリに基づいています。
次のコードスニペットを使用して、セレクタのさまざまな概念を定義します-
セレクターの構築
上記のコードを使用すると、次のようにテキストから構築できます-
結果は次のように表示されます-
あなたは応答から構築することができます-
結果は次のように表示されます-
セレクターを使用する
上記の簡単なコードスニペットを使用すると、以下に示すように、タイトルタグで定義されているテキストを選択するためのXPathを構築できます-
今、あなたは次のように示されている* .extract()*メソッドを使用してテキストデータを抽出することができます-
それは次のような結果を生成します-
次のように示されているすべての要素の名前を表示することができます-
次のように要素を表示します-
あなたが最初の要素を抽出したい場合は、次に示すように、メソッド* .extract_first()*を使用します-
次のように要素を表示します-
ネストセレクター
上記のコードを使用すると、次のように表示される* .xpath()*メソッドを使用して、ページリンクと画像ソースを表示するセレクターをネストできます-
結果は次のように表示されます-
正規表現を使用したセレクター
Scrapyでは、*。re()*メソッドを使用する正規表現を使用してデータを抽出できます。 上記のHTMLコードから、次のように表示される画像名を抽出します-
上記の行には、画像名が表示されます-
相対XPathを使用する
あなたが <p> 要素を抽出したい場合は、最初にすべてのdiv要素を得ます-
次に、以下に示すように*。//p のようにドットをXPathの前に付けることにより、内部のすべての *'p' 要素を抽出できます-
EXSLT拡張機能の使用
EXSLTは、XMLドキュメントをXHTMLドキュメントに変換するXSLT(Extensible Stylesheet Language Transformations)の拡張機能を発行するコミュニティです。 次の表に示すように、XPath式で登録されたネームスペースでEXSLT拡張機能を使用できます-
Sr.No | Prefix & Usage | Namespace |
---|---|---|
1 |
re 正規表現 |
http://exslt.org/regexp/indexl |
2 |
set セット操作 |
http://exslt.org/set/indexl |
前のセクションの正規表現を使用してデータを抽出するための簡単なコード形式を確認できます。
SPathyセレクターでXPathを使用するときに役立つXPathのヒントがいくつかあります。 詳細については、このリンク:/scrapy/xpth_tips [link]をクリックしてください。