基于scrapy框架模拟用户登陆

2018-03-15  本文已影响0人  Nise9s

使用一些其他的库,例如Requests,urllib等都会涉及到模拟登陆的问题。在这里贴出scrapy框架官方给出的代码,以供学习。

import scrapy # 引入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'},
            # 构建用户名和密码的字典数据formdata
            callback=self.after_login
            # 设置回调函数
        )

    def after_login(self, response):
        # check login succeed before going on
        if "authentication failed" in response.body:
            # 如果登录失败,则在日志中以ERROR的形式提醒
            self.log("Login failed", level=scrapy.log.ERROR)
            return

        # continue scraping with authenticated session...
        # 进行下一步操作

仅供参考学习。重点是先构建用户名和密码的formdata字典数据,然后使用FormRequest来请求。

上一篇 下一篇

猜你喜欢

热点阅读