2014-01-13 3 views
3

명령 줄에서 사용자 이름과 암호를 어떻게 전달할 수 있습니까? 감사!명령 행에서 Scrapy를 사용하여 양식 데이터를 전달하는 방법은 무엇입니까?

class LoginSpider(Spider): 
    name = 'example.com' 
    start_urls = ['http://www.example.com/users/login.php'] 

    def parse(self, response): 
     return [FormRequest.from_response(response, 
        formdata={'username': 'john', 'password': 'secret'}, 
        callback=self.after_login)] 

    def after_login(self, response): 
     # check login succeed before going on 
     if "authentication failed" in response.body: 
      self.log("Login failed", level=log.ERROR) 
      return 

     # continue scraping with authenticated session... 

답변

4

당신은

scrapy crawl spidername -a username="john" -a password="secret" 

다음

class LoginSpider(Spider): 
    name = 'example.com' 
    start_urls = ['http://www.example.com/users/login.php'] 

    def parse(self, response): 
     return [FormRequest.from_response(response, 
        formdata={'username': self.username, 'password': self.password}, 
        callback=self.after_login)] 

    def after_login(self, response): 
     # check login succeed before going on 
     if "authentication failed" in response.body: 
      self.log("Login failed", level=log.ERROR) 
      return 

     # continue scraping with authenticated session... 
+0

안녕하세요, 저는 -a를 사용해 보았지만 치료 껍질은 이런 것처럼 보이지 않습니다 ... – newdev14

4

열기 터미널을하고 있는지 scrapy 설치 할 수 있습니다.

  1. scrapy shell

  2. from scrapy.http import FormRequest

  3. request=FormRequest(url='http://www.example.com/users/login.php',formdata={'username': 'john','password':'secret',})

정보 :

  • 크레아티닌 apy 1.0.0
관련 문제