# 超级鹰的示范代码

#!/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高级_模拟登陆相关推荐

  1. python requests 10041报错_Python-Requests1-批量登录获取uid

    需求:从表格取不同的手机号和密码登录,获取不同用户的信息,写入本地表格 requests官网:https://github.com/requests/requests 1.安装Requests模块 1 ...

  2. 【python爬虫】报错module requests has no attribute get

    欢迎移步我的个人博客 错误原因 python文件名命名为了requests,与代码中的库名重了导致报错. 解决方法 类名.包名都不能与该包.类的代码中所用到的库名重复.起名字时候避免这种情况即可.

  3. python全局变量赋值报错_python全局变量、回调函数

    1.python全局变量相关概念及使用 来自菜鸟教程上的例子: http://www.runoob.com/python3/python3-function.html 一.python入参需要注意地方 ...

  4. python小括号报错_Python学习记录:括号配对检测问题

    Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...

  5. python双引号报错_Python中select语句中的双引号”“怎么处理

    我把MySQL的语句中放在了Python中(我用的Pycharm),有个sql语句是如下:insertinto`level-1metric`(`Year`,`SupplyChain`,`Region` ...

  6. python打包工具报错_Python打包发布神器—Pyinstaller

    一前言 在windows平台学习python的过程中,你肯定会遇到需要把.py脚本打包成.exe的情形,如此,至少有两方面的好处:第一,你的代码保密性更好,其他人不能直接看到python代码:第二,打 ...

  7. python class函数报错_Python 的函数是第一类 First-Class 对象

    Python的函数是第一类对象(first-class object).你可以把一个函数复制给变量,或者把函数存储在一个结构中.可以像参数一样把函数传递进另一个函数,还可以从一个函数中返回另一个函数. ...

  8. python打包exe报错_python 程序打包为 windows 可执行程序 exe

    1,使用到的程序 1,python 2,pyinstaller 2,安装 pyinstaller pip install pyinstaller 3,安装可能出现的问题与报错 1:AttributeE ...

  9. python import xlrd 报错_python读取excel(xlrd)

    一.安装xlrd模块: 1.mac下打开终端输入命令: pip install xlrd 2.验证安装是否成功: 在mac终端输入 python  进入python环境 然后输入 import xlr ...

最新文章

  1. 实验报告一:词法分析
  2. java安全编码指南之:敏感类的拷贝
  3. Postgres访问其他PostgresQL数据库的功能DBLINK
  4. 倪飞曝腾讯红魔6更多细节:搭载业内顶级散热技术
  5. lms算法的verilog实现_数字通信同步技术的MATLAB与FPGA实现
  6. 【Oracle】闪回表
  7. 一分钟认识JAVA与Android的联系与区别
  8. 拓端tecdat|R语言多分类logistic逻辑回归模型在混合分布模拟个人风险损失值评估的应用
  9. 基于Paddle Serving百度智能边缘BIE的边缘AI解决方案
  10. catia中的螺旋伞齿轮画法_使用CATIA绘制斜齿轮(直齿轮)得画法教程.doc
  11. Windows下安装Redies
  12. cad计算机绘图实操视频,CAD电脑绘图教程视频
  13. 如何更好的把平时的工作记录下来?这款便签可以高效记录工作日志
  14. 基于阿里云盘的文件分享系统
  15. LSTM预测多支股票的收盘价
  16. 【图论】图的最短路径问题——有权图的单源最短路(Dijkstra算法)
  17. 基于FPGA的电子计算器设计(下)
  18. js实现人物移动(附有全部代码以及解析)
  19. JavaScript解决异步的前世今生
  20. HMS Core 机器学习服务6.4.0版本更新啦,文本翻译功能增加10种小语种语言类型

热门文章

  1. 苹果发布新iPhone SE,售价3299元起;百度网盘破解者被捕;GitHub核心功能免费开放 | 极客头条...
  2. 人工智能的未来:杀戮还是治愈?
  3. 华为PLC-IoT生态联盟成立,携手合作伙伴共赢智慧物联新时代
  4. Python 揭秘斐波那契定律,如何帮助码农分析股票?| 技术头条
  5. 小米激荡十年:雷军的进与退
  6. 107 岁的 IBM 以 340 亿美元吞下了 25 岁的“小”红帽!
  7. 程序员总被坑?这是GitHub上的一篇防骗指南
  8. 枯燥编程加奇炫美术 —— 看育碧 Ubisoft 如何开发游戏大作
  9. html图片下方会有一像素,div里嵌套了img底部会有白块问题和图片一像素问题解决 - Macchiato...
  10. android onscrolllistener判断到底部,android中RecycleView添加下滑到底部的监听示例