Hi Theodis,

you can do

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


and then

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...




Hope it helps.

/Paul.



On Monday, January 13, 2014 9:53:11 PM UTC+1, Theodis Butler wrote:
>
> How would I pass username and password from the command line? Sorry not an 
> expert python programmer. Any help is greatly appreciated!
>
> Could I pass the arguments like: scrapy crawl spidername -a 
> username=john,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': '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...
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"scrapy-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/scrapy-users.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to