スクラピーズのcss
と同様に、セレクターxpath
とresponse
を使用できるように、スクラピーズのHTML応答オブジェクトに変換する生のhtml文字列があります。どうすればいいですか?
まず、デバッグまたはテストの目的である場合は、 Scrapy Shell
を使用できます。
$ cat index.html
<div id="test">
Test text
</div>
$ scrapy Shell index.html
>>> response.xpath('//div[@id="test"]/text()').extract()[0].strip()
u'Test text'
response
やrequest
のように、セッション中に シェルで使用可能なさまざまなオブジェクト があります。
または、 HtmlResponse
class をインスタンス化し、body
でHTML文字列を指定することもできます。
>>> from scrapy.http import HtmlResponse
>>> response = HtmlResponse(url="my HTML string", body='<div id="test">Test text</div>', encoding='utf-8')
>>> response.xpath('//div[@id="test"]/text()').extract()[0].strip()
u'Test text'