2017-04-09 61 views
1

我是Scrapy項目的新手,並閱讀了許多教程。他們似乎都假設您知道如何立即解析響應對象,並且您可以立即調用響應回調(例如scrapy.Request(url=url, callback=self.parse))。但實際上,我需要通過使用試錯法的CSS選擇器來工作。如何在Scrapy Shell中獲得Scrapy響應

如何獲取Scrapy響應對象,以便我可以交互操作它?

scrapy.Request(url=url)的響應似乎是我無法使用的東西(請參見屏幕截圖) - 無法解析HTML - 例如沒有.css方法。 enter image description here

回答

2

,使用fetch(request)

  • fetch(url[, redirect=True]) - 獲取從給定的URL一個新的響應,並相應地更新所有相關的對象。您可以選擇要求HTTP 3xx重定向不傳遞重定向= False
  • fetch(request) - 從給定請求獲取新響應並相應地更新所有相關對象。
+0

謝謝!根據你對我的問題的更新,我也發現這是非常有用的 - https://doc.scrapy.org/en/latest/topics/shell.html – Peter

-1

scrapy以異步方式工作,並在請求callback方法來確定哪個「方法」將接收response對象在這種情況下。

所以如果你真的跟着很多教程,你會碰到這樣的:

def parse(self, response): 
    ... 

    yield Request(url='myurl', callback=self.some_other_method) 

def some_other_method(self, response): 
    ... 
    # play with the response object of the request done to `myurl` 

這樣,你會得到一個順序方式的響應。

在外殼