我需要更新使用redio按钮的网站上的位置。这可以通过简单的Post请求来完成。问题是该请求的输出是
window.location='http://store.intcomex.com/en-XCL/Products/Categories?r=True';
由于它不是有效的URL,Scrapy会将其重定向到PageNotFound并关闭蜘蛛。
2017-09-17 09:57:59 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (302) to <GET https:
//store.intcomex.com/en-XCL/ServiceClient/PageNotFound> from <POST https://store.intcomex.com/en-XC
L//User/SetNewLocation>
这是我的代码:
def after_login(self, response):
# inspect_response(response, self)
url = "https://store.intcomex.com/en-XCL//User/SetNewLocation"
data={"id":"xclf1"
}
yield scrapy.FormRequest(url, formdata=data, callback = self.location)
# inspect_response(response, self)
def location(self, response):
yield scrapy.Request(url = 'http://store.intcomex.com/en-XCL/Products/Categories?r=True', callback = self.categories)
问题是如何在执行更改位置的Post请求后将scrapy重定向到有效的URL?是否有一些参数表明目标网址或我可以在没有回调的情况下执行它,而yiel正确的网址在下一行? 感谢。