Python爬虫——登录

Python爬虫——登录

  1. 打开抓包工具,在network‘中勾选preserve log选项,点击登录在这里插入图片描述

  2. 在network中可以捕获到相关的包,点击login
    在这里插入图片描述
    在这里插入图片描述

  3. 可以得到url值和请求的方式为post请求。
    往下拖动可以得到该请求所需要的参数列表在这里插入图片描述

  4. 得到服务器端给客户端发送的cookie值。(cookie值用来记录用户已经登录的这个状态,以此为凭据访问用户的数据)
    在这里插入图片描述

  5. 得到需要访问数据的url
    在这里插入图片描述

代码如下:(Code类的编写,请转到python爬虫——验证码识别)python爬虫——验证码识别

import requests
from lxml import etree
import Code

if __name__ == '__main__':

    #session与request的get,post方法相同,但其可以将服务器返回的cookie数据进行存储
    session = requests.session()

    #login里的url
    url_login = 'http://ptlogin.4399.com/ptlogin/login.do?v=1'

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36'
    }

    data = {
        'loginFrom': 'uframe',
        'postLoginHandler': 'default',
        'layoutSelfAdapting': 'true',
        'externalLogin': 'qq',
        'displayMode': 'popup',
        'layout': 'vertical',
        'appId': 'www_home',
        'gameId': '',
        'css': '',
        'redirectUrl': '',
        'sessionId': '',
        'mainDivId': 'popup_login_div',
        'includeFcmInfo': 'false',
        'level': '0',
        'regLevel': '4',
        'userNameLabel': '4399用户名',
        'userNameTip': '请输入4399用户名',
        'welcomeTip': '欢迎回到4399',
        'sec': '1',
        'password': 'U2FsdGVkX1++sW2ayFBjjX/XLx9cy5esN2ke9Dk66oWoO9F2kLKPe4jRP0RQpPZv',
        'username': 'cyan_tree'
    }

    #发送登录请求
    response = session.post(url=url_login, data=data, headers=headers)
    login_text = response.text
    #判断是否登录成功,如果成功response.status_code==200
    print(response.status_code)
    with open('4399.html', 'w', encoding='utf-8') as fp:
        fp.write(login_text)

    #用户界面的url
    detail_url = 'https://u.4399.com/profile/'
    response = session.get(url=detail_url, headers=headers)
    #防止出现乱码
    response.encoding = 'utf-8'
    detail_page_text = response.text

    #持久化存储
    with open('detail.html', 'w', encoding='utf-8') as fp:
        fp.write(detail_page_text)

    print('over')

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值