B站路飞学城古诗文网模拟登录源码

人人网改版,云打码也用不了了,所以用古诗文网+超级鹰模拟登录练习,放源码,供一起学习的小伙伴参考:

import requests
from lxml import etree
from chaojiying_Python.chaojiying import Chaojiying_Client

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36 Edg/90.0.818.42'
}
def get_session():
    session = requests.Session()
    return session

# 模拟登录古诗文网,将验证码下载下来
def get_img(session):
    # 不需要通过页面解析得到验证码图片地址,直接复制验证码图片链接即可
    url = 'https://so.gushiwen.cn/RandCode.ashx'
    response = session.get(url,headers=headers)
    img_path = './chaojiying_Python/a.jpg'
    with open(img_path,'wb') as fp:
        fp.write(response.content)

def get_VIEWSTATE(sesiion):
    url = 'https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'
    page_text = sesiion.get(url, headers=headers).text
    tree = etree.HTML(page_text)
    viewstate = tree.xpath('//*[@id="__VIEWSTATE"]/@value')[0]
    return viewstate

# 调用打码工具
def getCode():
    chaojiying = Chaojiying_Client('账号', '密码', '软件id')
    im = open('./chaojiying_Python/a.jpg', 'rb').read()
    result = chaojiying.PostPic(im, 1902) # 验证码类型
    return result['pic_str']

# 模拟登录
def login(viewstate,code):
    login_url = 'https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'
    data = {
        '__VIEWSTATE': viewstate,
        '__VIEWSTATEGENERATOR': 'C93BE1AE',
        'from': 'http://so.gushiwen.cn/user/collect.aspx',
        'email': '',
        'pwd': '',
        'code': code,
        'denglu': '登录'
    }
    response = session.post(login_url,headers=headers,data=data)
    response.encoding = 'utf-8'
    response.encoding = response.apparent_encoding
    login_page_text = response.text
    with open('./古诗文.html', 'w', encoding='utf-8') as fp:
        fp.write(login_page_text)


if __name__ == '__main__':
    session = get_session()
    get_img(session)
    viewstate = get_VIEWSTATE(session)
    code = getCode()
    login(viewstate,code)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值