XPathの中scrapy、CSSの使い方

まず、実験環境

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(「デフォルト値」)上記#、デフォルトパラメータを追加

おすすめ

転載: www.cnblogs.com/hester/p/11371384.html