ScrapyのScrapy shell
3781 ワード
Scrapy Shell
Scrapy端末はインタラクティブな端末で、spiderを起動しないでコードを試したりデバッグしたりすることができます.XPathやCSS式をテストしたりして、彼らの働き方を見たりすることができます.私たちが登ったページから抽出したデータを便利にすることができます.
IPythonがインストールされている場合、Scrapy端末はIPython(標準Python端末に代わる)を使用します.IPython端末は他のものよりも強力で、スマートな自動補完、ハイライト出力、その他の特性を提供しています.(IPythonのインストールを推奨)
Scrapy Shellの起動
プロジェクトのルートディレクトリに入り、shellを起動するには次のコマンドを実行します.
Scrapy Shellは、ダウンロードしたページに基づいて、Responseオブジェクトや shellがロードされると、responseデータを含むローカルresponse変数が得られ、入力 が Scrapyはまた、
Selectorsセレクタ
Scrapy Selectors内蔵XPathとCSS Selector式メカニズム
Selectorには4つの基本的な方法がありますが、最もよく使われているのはxpathです. xpath():xpath式が入力され、その式に対応するすべてのノードのselector listリスト が返される. extract():ノードをUnicode文字列としてシーケンス化し、list を返します. css():CSS式を入力し、その式に対応するすべてのノードのselector listリストを返します.構文はBeautifulSoup 4 と同じです. re():入力正規表現に基づいてデータを抽出し、Unicode文字列listリスト を返す.
XPath式の例と対応する意味:
Selectorを試します
私達はテンセント社の募集するウェブサイトを使いますhttp://hr.tencent.com/position.php?&start=0#a例:
後でデータの抽出をする時、現在のScrapy Shellの中でテストすることができて、テストは合格した後に更にコードの中で応用します.
もちろんScrapy Shellの役割はそれだけではありませんが、私たちのカリキュラムの重点ではなく、詳しく紹介しません.
公式ドキュメント:http://scrapy-chs.readthedocs.io/zh_CN/latest/topics/shell.html
転載先:https://www.cnblogs.com/wzjbg/p/6507559.html
Scrapy端末はインタラクティブな端末で、spiderを起動しないでコードを試したりデバッグしたりすることができます.XPathやCSS式をテストしたりして、彼らの働き方を見たりすることができます.私たちが登ったページから抽出したデータを便利にすることができます.
IPythonがインストールされている場合、Scrapy端末はIPython(標準Python端末に代わる)を使用します.IPython端末は他のものよりも強力で、スマートな自動補完、ハイライト出力、その他の特性を提供しています.(IPythonのインストールを推奨)
Scrapy Shellの起動
プロジェクトのルートディレクトリに入り、shellを起動するには次のコマンドを実行します.
scrapy shell "http://www.itcast.cn/channel/teacher.shtml"
Scrapy Shellは、ダウンロードしたページに基づいて、Responseオブジェクトや
Selector ( HTML XML )
など、使いやすいオブジェクトを自動的に作成します.response.body
はresponseのパケットを出力し、出力response.headers
はresponseのパケットヘッダを見ることができる.response.selector
を入力すると、responseが初期化したクラスSelectorのオブジェクトが取得され、response.selector.xpath()
またはresponse.selector.css()
を使用してresponseをクエリーできます.response.xpath()
またはresponse.css()
のようないくつかのショートカットを提供しています(前述の例のように).Selectorsセレクタ
Scrapy Selectors内蔵XPathとCSS Selector式メカニズム
Selectorには4つの基本的な方法がありますが、最もよく使われているのはxpathです.
XPath式の例と対応する意味:
/html/head/title: <HTML> <head> <title> /html/head/title/text(): <title> //td: <td> //div[@class="mine"]: class="mine" div
Selectorを試します
私達はテンセント社の募集するウェブサイトを使いますhttp://hr.tencent.com/position.php?&start=0#a例:
#
scrapy shell "http://hr.tencent.com/position.php?&start=0#a"
# xpath
response.xpath('//title')
[\u804c\u4f4d\u641c\u7d22 | \u793e\u4f1a\u62db\u8058 | Tencent \u817e\u8baf\u62db\u8058]
# extract() Unicode
response.xpath('//title').extract()
[u'\u804c\u4f4d\u641c\u7d22 | \u793e\u4f1a\u62db\u8058 | Tencent \u817e\u8baf\u62db\u8058 ']
# ,
print response.xpath('//title').extract()[0]
| | Tencent
# xpath
response.xpath('//title/text()')
# Unicode
response.xpath('//title/text()')[0].extract()
u'\u804c\u4f4d\u641c\u7d22 | \u793e\u4f1a\u62db\u8058 | Tencent \u817e\u8baf\u62db\u8058'
#
print response.xpath('//title/text()')[0].extract()
| | Tencent
response.xpath('//*[@class="even"]')
:
print site[0].xpath('./td[1]/a/text()').extract()[0]
TEG15- ( )
:
print site[0].xpath('./td[1]/a/@href').extract()[0]
position_detail.php?id=20744&keywords=&tid=0&lid=0
:
print site[0].xpath('./td[2]/text()').extract()[0]
後でデータの抽出をする時、現在のScrapy Shellの中でテストすることができて、テストは合格した後に更にコードの中で応用します.
もちろんScrapy Shellの役割はそれだけではありませんが、私たちのカリキュラムの重点ではなく、詳しく紹介しません.
公式ドキュメント:http://scrapy-chs.readthedocs.io/zh_CN/latest/topics/shell.html
転載先:https://www.cnblogs.com/wzjbg/p/6507559.html