Scrapy'nin response
numarasına benzer seçicilerin css
ve xpath
seçimlerini kullanabilmem için scrapy HTML yanıt nesnesine dönüştürmek istediğim bir ham html dizim var. Nasıl yapabilirim? o hata ayıklama veya test amaçlı ise tümscrapy: html dizesini HtmlResponse nesnesine dönüştürün
11
A
cevap
11
Birincisi, sen Scrapy shell
kullanabilirsiniz:
$ 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'
different objects available in the shell vardır oturumu sırasında, response
ve request
gibi.
Veya, bir HtmlResponse
class örneğini ve body
HTML dizesini sağlayabilir:
>>> from scrapy.http import HtmlResponse
>>> response = HtmlResponse(url="my HTML string", body='<div id="test">Test text</div>')
>>> response.xpath('//div[@id="test"]/text()').extract()[0].strip()
u'Test text'
sayesinde bazı ajaxiness becuase selenyum kullanıyorum, alecxe. Driver.page_source 'ı yeniden gönderme ile aynı nesneye dönüştürmek istiyorum, böylece bazı extractor'ları (css ve xpath selektörlerini kullanarak) lxml'ye başvurmak yerine yeniden kullanabilirim. İkinci seçeneğim ihtiyacım olan şey. – yayu
@yayu, muhtemelen bir HTML Cevabı oluşturmanıza gerek yoktur, daha çok bir "Selector", http://stackoverflow.com/questions/18836286/scraping-with-scrapy-and-selenium ve http: //stackoverflow.com/questions/17975471/selenium-with-scrapy-for-dynamic-page. Yardımcı olabilir. Teşekkürler. – alecxe
teşekkürler. Ben ona bakacağım. – yayu