首页 > 其他分享 >古诗词网登录之二维码的处理

古诗词网登录之二维码的处理

时间:2023-10-03 12:33:47浏览次数:28  
标签:code 登录 url gushiwen 二维码 session print aspx 古诗词

import requests
from lxml import etree
import urllib.request

url = 'https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62',
}
res = requests.get(url=url,headers=headers)

tree = etree.HTML(res.text)
# print(tree)
viewState = tree.xpath('//input[@id="__VIEWSTATE"]//@value')
# print(viewState[0])
viewStateGenerator = tree.xpath('//input[@id="__VIEWSTATEGENERATOR"]//@value')
# print(viewStateGenerator[0])
imgCode = tree.xpath('//img[@id="imgCode"]//@src')
# print(imgCode[0])
code_url = 'https://so.gushiwen.cn' + imgCode[0]
# print(code_url)

#urllib.request.urlretrieve(code_url,'code.jpg') 改成通过session获取,保证验证码和点击登录是在同一个请求
session = requests.session()
# 都使用session
rescode = session.get(code_url)
conCode = rescode.content
with open('code.jpg','wb')as fp:
    fp.write(conCode)


codeInput = input('请输入你的验证码')
login_url = 'https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'
loginData = {
    '__VIEWSTATE': viewState[0],
    '__VIEWSTATEGENERATOR': viewStateGenerator[0],
    'from': 'http://so.gushiwen.cn/user/collect.aspx',
    'email': '[email protected]',
    'pwd': 'sgj191026@#',
    'code': codeInput,
    'denglu': '登录',
}

loginRes = session.post(url=login_url,data=loginData,headers=headers)
loginContent = loginRes.text
file = open('loginSuccess.html', 'w',encoding='utf-8')
file.write(loginContent)

  

标签:code,登录,url,gushiwen,二维码,session,print,aspx,古诗词
From: https://www.cnblogs.com/sgj191024/p/17740967.html

相关文章

  • RDP远程登录后全屏,本地的任务栏始终显示的问题解决
    文章目录问题解决参考问题RDP远程登录后全屏,本地的任务栏(TaskBar)始终在下面,遮住了远程桌面的最下面,进行了解决。解决BestsolutionhowtohidelocalTaskbarwhenRDPtoaremotedesktopLaunchTaskManagerRight-click“WindowsExplorer”Select“Restart”Itworkson......
  • linux shell脚本判断当前登录用户是否为root
    脚本实现1(root-1.sh):#!/bin/bashROOT_UID=0if["$UID"-eq"$ROOT_UID"];thenecho"Youareroot."elseecho"Youarejustanordinaryuser(butmonlovesyoujustthesame)."fiexit0脚本实现2(root-2.sh):#!/bin/ba......
  • 视频监控/安防监控EasyCVR平台如何调取登录接口获取token?
    安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智能分析的......
  • springboot web开发登录拦截器
    在SpringBoot中我们可以使用HandlerInterceptorAdapter这个适配器来实现自己的拦截器。这样就可以拦截所有的请求并做相应的处理。应用场景日志记录,可以记录请求信息的日志,以便进行信息监控、信息统计等。权限检查:如登陆检测,进入处理器检测是否登陆,如果没有直接返回到登陆页面。性......
  • 2.6.2通过Telnet登录设备和管理设备
    1.配置R1端口ip<Huawei><Huawei>sys <Huawei>system-viewEntersystemview,returnuserviewwithCtrl+Z.[Huawei]sysnameR1[R1]interf [R1]interfacegi [R1]interfaceGigabitEthernet0/0/0[R1-GigabitEthernet0/0/0]ipaddress12.1.1.124[......
  • 2.6.1通过Console端口登录和管理设备
    <Huawei>sys<Huawei>system-viewEntersystemview,returnuserviewwithCtrl+Z.[Huawei]user-interfacecon0[Huawei-ui-console0]auth[Huawei-ui-console0]authentication-modepasswordPleaseconfiguretheloginpassword(maximumlength16):Hu......
  • 完美实现验证码登录
    #login_code.py#导包fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromtimeimportsleepfromselenium.webdriver.chrome.optionsimportOptionsimportpytesseract#导入ocr库fromPILimportImage#导入图像处理库importdddd......
  • 钉钉小程序 登录记住密码
    钉钉小程序登录记住密码1、在登录成功后添加缓存dd.setStorage({key:'username',data:"账号",});dd.setStorage({key:'password',data:"密码",});2、在onLoad加载......
  • postman升级后文件丢失/登录后无文件解决
     找到C盘用户admin账号下AppData文件夹,按照下面路径找到如下如所示的文件C:\Users\Admin\AppData\Roaming\Postman 找到最新的一次记录 将这个最新的json文件导入到postman中即可。 ......
  • NodeJS分别实现token、cookie登录注册鉴权(KOA2)
    源码https://github.com/NaCl-131/node-study.git包npminstallkoanpminodemon-D#保存自动更新npmikoa-router#路由npmikoa-body#解析post的传参npmimysql2sequelize#mysql和一个ORM工具npmijsonwebtoken#JWTnpmidotenv#.env文件npmikoa-sess......