У меня есть необработанная строка html, которую я хочу преобразовать в объект для проверки объекта HTML, чтобы я мог использовать селектора css
и xpath
, похожие на scrapy response
. Как я могу это сделать?
Scrapy: конвертировать html-строку в объект HtmlResponse
Ответ 1
Прежде всего, если это для отладки или тестирования, вы можете использовать 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
и предоставить строку HTML в body
:
>>> 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'