scrapy基础知识之 使用FormRequest.from_response()方法模拟用户登录:

通常网站通过 实现对某些表单字段(如数据或是登录界面中的认证令牌等)的预填充

使用Scrapy抓取网页时,如果想要预填充或重写像用户名、用户密码这些表单字段, 可以使用 FormRequest.from_response() 方法实现。

下面是使用这种方法的爬虫例子:

import scrapy

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

    def parse(self, response):
        return scrapy.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
posted @ 2017-06-09 11:50  hcw_19  阅读(7552)  评论(1编辑  收藏  举报