scrapy(4)模拟登录

官网上说支持模拟登录,在中间件中

接下来实现模拟登录




蜘蛛文件如下:

#第二个蜘蛛,模拟用户名密码登录
class LoginSpider(scrapy.Spider):
    name = "testlogin"
    start_urls=["http://www.kgc.cn/member/login"]
    def parse(self, response):
        return scrapy.FormRequest.from_response(
            response,
            formdata={'KgcForm_models_LoginForm[identity]':'15210749058' ,'KgcForm_models_LoginForm[password]':'13630355136asd'},
            callback=self.after_login
        )
    #不成功回的
    def after_login(self,response):
        #找到报错时显示错误信息的标签
        txt=response.css('div.errorMessage::text').extract_first()
        if txt is None:
            #txt=response.css('div.common-head.fix::text').extract_first()
            #print(txt)
        #登录成功后看所学的所有课程
        #http://www.kgc.cn/my/jobOE.shtml这个页面是就业课的连接
            yield  response.follow("http://www.kgc.cn/my/jobOE.shtml",self.listke)
        else:
            print(txt)
    def listke(self,response):
        titles = response.css('a.courseTitle.f16.black::text').extract()
        for i in titles:
            print(i)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
模拟登录豆瓣,需要使用 Scrapy 模拟登录的插件 `scrapy-login`。这个插件可以帮助你实现模拟登录,自动填写表单,发送 POST 请求等功能。 以下是模拟登录豆瓣的步骤: 1. 安装 scrapy-login ``` pip install scrapy-login ``` 2. 创建一个新的 Scrapy 项目 ``` scrapy startproject douban ``` 3. 在 `settings.py` 中添加以下代码: ``` DOWNLOADER_MIDDLEWARES = { 'scrapy_login.middleware.ScrapyLoginMiddleware': 200, } LOGIN_URL = 'https://accounts.douban.com/passport/login' LOGIN_USERNAME = 'your_username' LOGIN_PASSWORD = 'your_password' # 将 'douban' 替换为你的项目名称 LOGIN_REQUESTS_CONFIG = { 'endpoint': 'https://accounts.douban.com/j/mobile/login/basic', 'data': { 'name': LOGIN_USERNAME, 'password': LOGIN_PASSWORD, }, 'method': 'POST', 'headers': { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', 'Referer': 'https://accounts.douban.com/passport/login', }, 'meta': { 'dont_redirect': True, 'handle_httpstatus_list': [302], }, } ``` 这里的 `LOGIN_URL` 是豆瓣的登录页面地址,`LOGIN_USERNAME` 和 `LOGIN_PASSWORD` 是你的豆瓣账号和密码。 4. 创建一个新的 Spider,并添加以下代码: ```python from scrapy.spiders import Spider from scrapy_login import login_user class DoubanSpider(Spider): name = 'douban' start_urls = ['https://www.douban.com/'] def start_requests(self): for url in self.start_urls: yield login_user(url=url, callback=self.parse) def parse(self, response): # 在这里处理登录后的网页 pass ``` 5. 运行爬虫 ``` scrapy crawl douban ``` 这样就可以模拟登录豆瓣了。需要注意的是,豆瓣有反爬虫机制,如果爬取速度过快或者频繁登录可能会导致账号被封禁。因此,建议在开发时使用测试账号进行测试,不要过度使用豆瓣的接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值