我正在尝试使用FormRequest使用scrapy登录并重定向到搜索链接。
这是我的代码的一部分:
start_urls = ['https://www.cpaelites.com/member.php?action=login']
def parse(self, response):
payload = {'username':'','password':''}
r = [FormRequest.from_response(response,formdata=payload,callback=self.after_login)]
def after_login(self,response):
if "incorrect" in response.body:
self.logger.error("Login failed")
return
elif "Login to your Account" in response.body:
self.logger.error("Try again")
return
else:
url = "https://www.cpaelites.com/search.php"
results = FormRequest(url,formdata={'keywords': 'bitter'},callback=self.parse_page)
return results
def parse_page(self, response):
#do the rest
当我启动我的抓取工具时,它没有给我任何错误,它只是结束。
第二个问题: 如何登录scrapy shell并转到特定的搜索页面以便获取xpath?
答案 0 :(得分:0)
在after_login
方法中,您忘记了yield
FormRequest
也许你想做类似
的事情def parse(self, response):
payload = {'username':'some user','password':'some password'}
yield FormRequest.from_response(
response,formdata=payload,callback=self.after_login
)