まず、実験環境
1.Windows7x64_SP1
2.anaconda3 + python3.7.3(アナコンダは、別個にインストールすることなく、集積)
3.scrapy1.6.0
第二に、使用例
1. scrapyシェル、次のコマンドラインを入力します。
scrapyシェルhttp://doc.scrapy.org/en/latest/_static/selectors-sample1.html
結果は以下の通りであります:
2.ノードを抽出
-
XPathの中の使用
結果= response.xpath( '// A')
結果は以下の通りであります:
[<セレクターのxpath = '//'データ= '<HREF = "image1.html">名前:私の画像1 <'>、 <セレクタのxpath = '//'データ= '<HREF = "画像2 .htmlを">名前:私の画像2 < '>、 <セレクタのxpath =' // 'データ= '<HREF = "image3.html">名前:私の画像3 <'>、 <セレクタのxpath =' / / 'データ= '<a href="image4.html">名前:私の画像4 <'>、 <セレクタのxpath = '//'データ=' <HREF = "image5.html">名称:マイ画像5 < '>]
-
CSSの使い方
結果= response.css( 'A')
結果は以下の通りであります:
[<セレクターのxpath = '子孫-または自己::'データ= '<HREF = "image1.html">名前:私の画像1 <'>、 <セレクタのxpath = '子孫-または自己:: 'データ=' <a href="image2.html">名前:私の画像2 < '>、 <セレクタのxpath ='子孫-または自己:: 'データ=' <HREF = "image3.html">名前:私の画像3 < '>、 <セレクタのxpath ='子孫-または自己:: 'データ= '<HREF = "image4.html">名前:私の画像4 <'>、 <セレクタのxpath ='子孫-または自己::」データ= '<a href="image5.html">名前:私の画像5 <'>]
3.結果の種類を確認してください
タイプ(結果)
結果は以下の通りであります:
scrapy.selector.unified.SelectorList
説明:結果リストもSelectListのタイプ、それらはさらにデータを抽出するためのXPath()およびCSS()および他のメソッドを呼び出すために続けることができ、セレクタで構成されています。
4.エキス()関数を使用して、全体の内容が抽出された結果データを見ます
result.extract()
結果は以下の通りであります:
[ '<a href="image1.html">名前:私の画像1 <BR> <IMG SRC = "image1_thumb.jpg"> </a>の'、 「<a href="image2.html">名:マイ画像2 <BR> <IMG SRC = "image2_thumb.jpg"> </a>の' ' <a href="image3.html">名前:私の画像3 <BR> <IMG SRC = "image3_thumb.jpg"> </a>の' '<a href="image4.html">名前:私の画像4 <BR> <IMG SRC = "image4_thumb.jpg"> </a>の'、 ' <のhref = "image5.html ">名前:私の画像5 <BR> <IMG SRC =" image5_thumb.jpg "> </a>の']
抽出ノードの内容
-
XPathの使い方で、テキスト()関数を使用して、
response.xpath( '// A /テキスト()')
結果は以下の通りであります:
[<セレクタのXPath = '// A /テキスト()'データ= '名:マイ画像1 '>、 <セレクタのXPath =' // A /テキスト()'データ= '名前:私の画像2'>、 <セレクタのxpath = '// A /テキスト()'データ= '名前:私の画像3 '>、 <セレクタのxpath =' // A /テキスト()'データ= '名前:私のイメージ4'>、 <セレクタのXPath = '// A /テキスト()'データ= '名前:私の画像5'>]
ビューHTMLコンテンツ
response.xpath( '// A /テキスト()')。(抽出)
結果は以下の通りであります:
[ '名:マイ画像1'、 '名前:私の画像2'、 '名称:マイ画像3'、 '名前:私の画像4'、 '名:マイ画像5']
-
CSSの使い方
response.css( '::テキスト')。抽出物()
結果は以下の通りであります:
[ '名:マイ画像1'、 '名前:私の画像2'、 '名称:マイ画像3'、 '名前:私の画像4'、 '名:マイ画像5']
6. 抽出した属性値
-
使用、使用/ @属性名でXPath(例えば/ @のHREF)
response.xpath( '// A / @用のhref')。抽出物()
結果は以下の通りであります:
[ 'image1.html'、 'image2.html'、 'image3.html'、 'image4.html'、 'image5.html']
- CSSの使い方
response.css( ':: attrの( "HREF")')。抽出物()
結果は以下の通りであります:
[ 'image1.html'、 'image2.html'、 'image3.html'、 'image4.html'、 'image5.html']
7. 抽出内部ノードのサブノード
-
用法/子ノード名でXPath
response.xpath( '// A / IMG')。(抽出)
結果は以下の通りであります:
[ '<IMG SRC = "image1_thumb.jpg">'、 '<IMG SRC = "image2_thumb.jpg">'、 '<IMG SRC = "image3_thumb.jpg">'、 「<IMG SRC = "image4_thumb.jpg" >」、 '<IMG SRC = "image5_thumb.jpg">']
-
CSSの使い方
response.css( 'IMG')。抽出物()
結果は以下の通りであります:
[ '<IMG SRC = "image1_thumb.jpg">'、 '<IMG SRC = "image2_thumb.jpg">'、 '<IMG SRC = "image3_thumb.jpg">'、 「<IMG SRC = "image4_thumb.jpg" >」、 '<IMG SRC = "image5_thumb.jpg">']
ステップ6と同じで再抽出src属性値
-
XPathの使用状況
response.xpath( '// A / IMG / @ SRC')。抽出物()
-
CSSの使い方
response.css( 'IMG ::のattr( "SRC")')。抽出物()
公的に記載の方法
- 最初の要素を抽出するためのextract_first()#
- extract_first(「デフォルト値」)上記#、デフォルトパラメータを追加