scrapy登录表单问题

时间:2017-08-24 15:41:06

标签: python-2.7 scrapy

我正在尝试使用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?

1 个答案:

答案 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
   )