2014-12-05 18 views

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' 
+0

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

+1

@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

+0

teşekkürler. Ben ona bakacağım. – yayu