python requests 10041报错_Python:requests高级_模拟登陆
# 超级鹰的示范代码
#!/usr/bin/env python
# coding:utf-8
import requests
from hashlib import md5
class Chaojiying_Client(object):
def __init__(self, username, password, soft_id):
self.username = username
password = password.encode('utf8')
self.password = md5(password).hexdigest()
self.soft_id = soft_id
self.base_params = {
'user': self.username,
'pass2': self.password,
'softid': self.soft_id,
}
self.headers = {
'Connection': 'Keep-Alive',
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
}
def PostPic(self, im, codetype):
"""im: 图片字节codetype: 题目类型 参考 http://www.chaojiying.com/price.html"""
params = {
'codetype': codetype,
}
params.update(self.base_params)
files = {'userfile': ('ccc.jpg', im)}
r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)
return r.json()
def ReportError(self, im_id):
"""im_id:报错题目的图片ID"""
params = {
'id': im_id,
}
params.update(self.base_params)
r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)
return r.json()
#自己封装的一个识别验证码图片的函数
def transform_code_img(imgPath,imgType):
chaojiying = Chaojiying_Client('username', 'password', 'soft_id') #用户中心>>软件ID 生成一个替换 96001
im = open(imgPath, 'rb').read()#本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
return chaojiying.PostPic(im, imgType)['pic_str']#1902 验证码类型 官方网站>>价格体系 3.4+版 print 后要加()
#调用识别验证码的函数对验证码进行识别
transform_code_img('./a.jpg',4004)
### 将古诗文网中的验证码图片进行识别
### 以下代码并未进过验证,只是为了展示实现原理 ###
sess = requests.Session() #创建好session对象,保存cookies
#处理动态变化的请求参数
#1.解析出本次登录页面对应的验证码图片地址
login_url = 'https://so.gushiwen.org/user/login.aspx?from=http://so.gushiwen.org/user/collect.aspx'
page_text = sess.get(url=login_url,headers=headers).text
tree = etree.HTML(page_text)
#解析出了验证码图片的地址
img_path = 'https://so.gushiwen.org'+tree.xpath('//*[@id="imgCode"]/@src')[0]
img_data = sess.get(url=img_path,headers=headers).content #请求到了图片数据
#将图片保存到本地存储
with open('./code.jpg','wb') as fp:
fp.write(img_data)
#将动态变化的请求参数从页面源码中解析出来
__VIEWSTATE = tree.xpath('//*[@id="__VIEWSTATE"]/@value')[0]
__VIEWSTATEGENERATOR = tree.xpath('//*[@id="__VIEWSTATEGENERATOR"]/@value')[0]
#识别验证码
code_result = transform_code_img('./code.jpg',1004)
print(code_result)
post_url = 'https://so.gushiwen.org/user/login.aspx?from=http%3a%2f%2fso.gushiwen.org%2fuser%2fcollect.aspx'
data = {
"__VIEWSTATE":__VIEWSTATE,
"__VIEWSTATEGENERATOR":__VIEWSTATEGENERATOR,
"from": "http://so.gushiwen.org/user/collect.aspx",
"email": "email_address",
"pwd": "password",
"code": code_result,
"denglu": "登录",
}
#模拟登录的请求
response = sess.post(url=post_url,headers=headers,data=data)
page_text = response.text #登录成功后页面的源码数据
with open('gushiwen.html','w',encoding='utf-8') as fp:
fp.write(page_text)
python requests 10041报错_Python:requests高级_模拟登陆相关推荐
- python requests 10041报错_Python-Requests1-批量登录获取uid
需求:从表格取不同的手机号和密码登录,获取不同用户的信息,写入本地表格 requests官网:https://github.com/requests/requests 1.安装Requests模块 1 ...
- 【python爬虫】报错module requests has no attribute get
欢迎移步我的个人博客 错误原因 python文件名命名为了requests,与代码中的库名重了导致报错. 解决方法 类名.包名都不能与该包.类的代码中所用到的库名重复.起名字时候避免这种情况即可.
- python全局变量赋值报错_python全局变量、回调函数
1.python全局变量相关概念及使用 来自菜鸟教程上的例子: http://www.runoob.com/python3/python3-function.html 一.python入参需要注意地方 ...
- python小括号报错_Python学习记录:括号配对检测问题
Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...
- python双引号报错_Python中select语句中的双引号”“怎么处理
我把MySQL的语句中放在了Python中(我用的Pycharm),有个sql语句是如下:insertinto`level-1metric`(`Year`,`SupplyChain`,`Region` ...
- python打包工具报错_Python打包发布神器—Pyinstaller
一前言 在windows平台学习python的过程中,你肯定会遇到需要把.py脚本打包成.exe的情形,如此,至少有两方面的好处:第一,你的代码保密性更好,其他人不能直接看到python代码:第二,打 ...
- python class函数报错_Python 的函数是第一类 First-Class 对象
Python的函数是第一类对象(first-class object).你可以把一个函数复制给变量,或者把函数存储在一个结构中.可以像参数一样把函数传递进另一个函数,还可以从一个函数中返回另一个函数. ...
- python打包exe报错_python 程序打包为 windows 可执行程序 exe
1,使用到的程序 1,python 2,pyinstaller 2,安装 pyinstaller pip install pyinstaller 3,安装可能出现的问题与报错 1:AttributeE ...
- python import xlrd 报错_python读取excel(xlrd)
一.安装xlrd模块: 1.mac下打开终端输入命令: pip install xlrd 2.验证安装是否成功: 在mac终端输入 python 进入python环境 然后输入 import xlr ...
最新文章
- 实验报告一:词法分析
- java安全编码指南之:敏感类的拷贝
- Postgres访问其他PostgresQL数据库的功能DBLINK
- 倪飞曝腾讯红魔6更多细节:搭载业内顶级散热技术
- lms算法的verilog实现_数字通信同步技术的MATLAB与FPGA实现
- 【Oracle】闪回表
- 一分钟认识JAVA与Android的联系与区别
- 拓端tecdat|R语言多分类logistic逻辑回归模型在混合分布模拟个人风险损失值评估的应用
- 基于Paddle Serving百度智能边缘BIE的边缘AI解决方案
- catia中的螺旋伞齿轮画法_使用CATIA绘制斜齿轮(直齿轮)得画法教程.doc
- Windows下安装Redies
- cad计算机绘图实操视频,CAD电脑绘图教程视频
- 如何更好的把平时的工作记录下来?这款便签可以高效记录工作日志
- 基于阿里云盘的文件分享系统
- LSTM预测多支股票的收盘价
- 【图论】图的最短路径问题——有权图的单源最短路(Dijkstra算法)
- 基于FPGA的电子计算器设计(下)
- js实现人物移动(附有全部代码以及解析)
- JavaScript解决异步的前世今生
- HMS Core 机器学习服务6.4.0版本更新啦,文本翻译功能增加10种小语种语言类型
热门文章
- 苹果发布新iPhone SE,售价3299元起;百度网盘破解者被捕;GitHub核心功能免费开放 | 极客头条...
- 人工智能的未来:杀戮还是治愈?
- 华为PLC-IoT生态联盟成立,携手合作伙伴共赢智慧物联新时代
- Python 揭秘斐波那契定律,如何帮助码农分析股票?| 技术头条
- 小米激荡十年:雷军的进与退
- 107 岁的 IBM 以 340 亿美元吞下了 25 岁的“小”红帽!
- 程序员总被坑?这是GitHub上的一篇防骗指南
- 枯燥编程加奇炫美术 —— 看育碧 Ubisoft 如何开发游戏大作
- html图片下方会有一像素,div里嵌套了img底部会有白块问题和图片一像素问题解决 - Macchiato...
- android onscrolllistener判断到底部,android中RecycleView添加下滑到底部的监听示例