crapyシェル
Scrapy端子は、私たちが抽出されたクロールされたデータ・ページを容易にし、対話型端末で、私たちはクモのない状態で起動しようとコードをデバッグすることができますまた、彼らがどのように機能するかを確認するために、XPath式またはCSSをテストするために使用することができます。
IPythonがインストールされている場合、Scrapy IPython端子は、(代わりに、標準のターミナルのPython)を使用します。他の、より強力な、インテリジェントな自動補完、ハイライト出力、および他の特徴と比較IPython端末。(IPythonをインストールすることをお勧めします)
スタートScrapyシェル
プロジェクトのルートディレクトリに、シェルを起動するには、次のコマンドを実行します。
scrapyシェル" https://www.cnblogs.com/loaderman/ "
crapyシェルも自動的に、このような応答オブジェクトとして、ダウンロードページに基づいて使用するように簡単にオブジェクトを作成しますSelector 对象 (对HTML及XML内容)
。
-
シェルがロードされたとき、応答変数、入力含有する得られた局所応答データ
response.body
袋体の出力応答には、出力はresponse.headers
応答ヘッダを見ることができます。 -
入力さ
response.selector
れた場合に使用することによって取得されたオブジェクトクラスセレクタ初期化応答、response.selector.xpath()
またはresponse.selector.css()
クエリ応答がします。 -
Scrapyはまた、例えば、いくつかのショートカットを提供し、
response.xpath()
あるいはresponse.css()
また、(例えば、前ケースとして)効果を取ることができます。
セレクタセレクタ
ScrapyセレクタとCSSセレクタが内蔵されたXPath式のメカニズム
セレクタ4つの基本的な方法、最も一般的なまたはXPathがあります。
- XPathの():着信XPath式、式戻りリストセレクタリストに対応するすべてのノード
- エキス():ノードは、Unicode文字列の配列であり、リストを返します
- CSS():着信CSS発現、発現戻りBeautifulSoup4とセレクタリストリスト構文に対応するすべてのノード
- 再():抽出されたデータは、正規表現に渡されるUnicode文字列のリストのリストを返します
意味と、対応するXPath式の例:
/ HTML /ヘッド/タイトル:セレクトで<HTML>ドキュメントの<head> <タイトル>タグ要素 上記の<title>で選択:/ HTML /ヘッド /タイトル/テキスト() のテキスト要素 // TD:選択すべての<TD> 要素 //のdiv [@ クラス = " 鉱山" ]:ですべてを選択し、クラス = " 鉱山" div要素の属性
用腾讯社招的网站http://hr.tencent.com/position.php?&start=0#a举例:
#启动 scrapyシェル" http://hr.tencent.com/position.php?&start=0#a " #オブジェクトリストセレクタのXPath返し response.xpath(「//タイトルを」) [ <セレクターのxpath = ' //タイトル'データ= U " <タイトル> \ u804c \ u4f4d \ u641c \ u7d22 | \ u793e \ u4f1a \ u62db \ u8058 | テンセント\ u817e \ u8baf \ u62db \ u8058 </タイトル" > ] #エキス()メソッドを使用すると、Unicode文字列のリストを返します response.xpath(' //タイトル' )).extractを( [U " <タイトル> \ u804c \ u4f4d \ u641c \ u7d22 | \ u793e \ u4f1a \ u62db \ u8058 | テンセント\ u817e \ u8baf \ u62db \ u8058 </タイトル> " ] #最初の要素のリストを印刷し、末端コード形式の 印刷 response.xpath(' //タイトル' ).extract()[0] <タイトル>求人検索|社会リクルート|テンセントのTencent募集</ TITLE> #戻り値オブジェクトリストセレクタのXPath response.xpath(' //タイトル/テキスト()' ) <セレクタのxpath = ' //タイトル/テキスト()'データ= U " \ u804c \ u4f4d \ u641c \ u7d22 | \ u793e \ u4f1a \ u62db \ u8058 |テンセント\ u817e \ u8baf \ u62db \ u8058 " > #リストのUnicode文字列の最初の要素を返します response.xpath(' //タイトル/テキストを()' )[0] .extract() U " \ u804c \ u4f4d \ u641c \ u7d22 | \ u793e \ u4f1a \ u62db \ u8058 | テンセント\ u817e \ u8baf \ u62db \ u8058 " #ごとのターミナルエンコード形式の プリント response.xpath(' //タイトル/テキスト()' )[0] .extract() 求人検索 |社会リクルート| テンセントテンセント募集 response.xpath(' // * [クラス@ = "でも"] ' ) 職種: 印刷サイト[0] .xpath(' ./td [1] / /テキスト()' ).extract()[0] TEG15 - オペレーションエンジニア(深セン) ジョブ・タイトルは、詳細ページ: 印刷サイト[0] .xpath(' ./td[1]/a/@href ' ).extract()[0] position_detail.php?ID = 20744&キーワード=&TID = 0&蓋= 0 希望の職種: 印刷サイト[0] .xpath(' ./td [2] /テキスト()' ).extract()[0] テクノロジーカテゴリ
データ抽出の後に行い、彼らは今Scrapyシェルは、テストでは、テスト・パスとは、コードに適用することができます。
公式文書:http://scrapy-chs.readthedocs.io/zh_CN/latest/topics/shell.html