(项目)使用接口自动登陆滴滴打码网站

摘要:
目标使用该界面自动登录滴滴。因此,更改后的界面用于请求滴滴的登录。3.发送帖子请求登录滴滴。请求应包括账号、密码和超级鹰身份验证码的结果。3) 当我们运行它时,我们得到的代码与滴滴主页上的源代码相同,这证明我们已经成功登录。C=0.5569207243804184'14#第二个请求用于请求登录界面的验证码。
目标

  使用接口实现自动登陆滴滴打码。

分析

1 打开滴滴打码登陆网站:http://www.ddocr.com/user/login.html 。

2 查看接口

 1)发现有一个get型接口:login.html  如下图所示。这个接口用于我们请求登陆界面。

(项目)使用接口自动登陆滴滴打码网站第1张

  2)还发现了一个get型接口:code.html  如下图所示。这个接口用来请求登陆界面显示的验证码。

(项目)使用接口自动登陆滴滴打码网站第2张

3 输入账号、密码和验证码后点击登陆,进入网站首页。

 1)进入网站首页后,我们发现用于获取登陆界面的get型接口变为post型:login.jsonp  如下图所示。

    这个post接口还有 Form Data 这一表单数据,包括我们登陆的账号、密码和验证码。因此这个变化后的接口是用来请求登陆滴滴打码的。

   (项目)使用接口自动登陆滴滴打码网站第3张

   (项目)使用接口自动登陆滴滴打码网站第4张

 2)进入网站首页后,我们发现还多出了一个接口:index.html ,多出的这个接口用来请求首页。如果没有这个请求,我们就看不到首页。

(项目)使用接口自动登陆滴滴打码网站第5张

思路

  1 发送一个get请求,用于获取登陆界面。url为登陆界面的url:http://www.ddocr.com/user/login.html 

  2 发送一个get请求,用于获取第1步登陆界面的验证码,把登陆界面的验证码下载到本地,然后用超级鹰对下载的图片进行识别。

  3 发送一个post请求,用于登陆滴滴打码网,请求应该包括:账号、密码以及超级鹰识别验证码的结果。

  4 发送一个get请求,用来请求滴滴打码网的首页。

  注意:

  1)前三个步骤的验证码是同一个验证码。为了保证它们三步的验证码相同,我们应该使用requests库的Session方法,这样每次发送请求的cookie就都相同了。第4步请求首页的cookie也应该和前三次相同。

 1 request = requests.Session()
 2 # 第一次请求
 3 request1 = request.get()
 4 # 第二次请求
 5 request2 = request.get()
 6 # 第三次请求
 7 request3 = request.post()
 8 # 第四次请求
 9 request4 = request.get()
10 
11 # 以上四次请求的cookie都相同。

  2)每次发送请求时,都应该加上请求头,以免请求失败。

  3)当我们运行后,得到的代码与滴滴打码首页的源代码是一样的,那么就证明我们登陆成功了。

 1 '''2020-7-1 by 微风'''
 2 
 3 import requests
 4 from hashlib import md5
 5 
 6 s = requests.Session()
 7 #第一次请求,用于请求登陆界面。
 8 s.get('http://www.ddocr.com/user/login.html')
 9 
10 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
11 
12 #获取验证码
13 yanzhengma_url = 'http://www.ddocr.com/validate/code.html?c=0.26932298512812447?c=0.5569207243804184'
14 #第二次请求,用于请求登陆界面的验证码。
15 yanzhengma = s.get(yanzhengma_url,headers=headers)
16 
17 #将验证码保存到本地
18 with open('yanzhengma.jpg','wb') as file:
19     file.write(yanzhengma.content)
20 
21 #使用超级鹰识别下载到本地的验证码
22 class Chaojiying_Client(object):
23 
24     def __init__(self, username, password, soft_id):
25         self.username = username
26         self.password = md5(password.encode('utf8')).hexdigest()
27         self.soft_id = soft_id
28         self.base_params = {
29             'user': self.username,
30             'pass2': self.password,
31             'softid': self.soft_id,
32         }
33         self.headers = {
34             'Connection': 'Keep-Alive',
35             'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
36         }
37 
38     def PostPic(self, im, codetype):
39         """
40         im: 图片字节
41         codetype: 题目类型 参考 http://www.chaojiying.com/price.html
42         """
43         params = {
44             'codetype': codetype,
45         }
46         params.update(self.base_params)
47         files = {'userfile': ('ccc.jpg', im)}
48         r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)
49         return r.json()
50 
51     def ReportError(self, im_id):
52         """
53         im_id:报错题目的图片ID
54         """
55         params = {
56             'id': im_id,
57         }
58         params.update(self.base_params)
59         r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)
60         return r.json()
61 chaojiying = Chaojiying_Client('超级鹰账号', '超级鹰密码', '超级鹰软件ID')
62 im = open('yanzhengma.jpg', 'rb').read()
63 
64 
65 #第三次请求,用于请求登陆,登陆时需要携带登陆信息。chaojiying.PostPic(im, 1004)['pic_str']是超级鹰识别下载到本地的验证码的结果。
66 Form_Data = {'account': '754944838@qq.com','password': '346980801','verity':chaojiying.PostPic(im, 1004)['pic_str']} 
67 login = s.post('http://www.ddocr.com/user/login.html',data=Form_Data,headers=headers)
68 
69 #第四次请求,用于请求首页
70 index = s.get('http://www.ddocr.com/user/index.html',headers=headers)
71 print(index.text)

  

免责声明:文章转载自《(项目)使用接口自动登陆滴滴打码网站》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇第二点五个不高兴的小明iOS9中,swift判断相机,相册权限,选取图片为头像下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

90%的前端都会踩的坑

【建议收藏】90%的前端都会踩的坑,你中了吗? 写在前面 移动开发时代,前端同学刚刚送别了让人头秃的IE浏览器,却发现憧憬已久的移动互联网时代并不是想象中那般美好。各种棘手的系统兼容问题和浏览器兼容问题怎么也让人高兴不起来。作为一名工作不足3年的前端程序媛,始终相信好记性不如烂笔头。每次在项目开发过程中踩到的坑,都习惯性地记录了下来。昨日一瞥竟积少成多...

调用微信JS-SDK配置签名

前后端进行分开开发: 1:后端实现获取   +++接口凭证:access_token (公众号的全局唯一接口调用凭据)     ** GET 获取:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET...

云存储:阿里云 和 七牛 的比较

结论: 阿里云存储 七牛云存储 标准:REST、HTTP 99%符合 50% 基本功能:送二级域名、绑定域名、CDN 支持 支持 自定义文件HTTP header 支持 少量支持 高级服务:图片处理 不提供 很完善地提供 收费策略 收费 小流量免费。大流量收费。 官方PHP SDK 差,依赖亚马逊http库,而不是PHP官...

手游开发目前盗版的一些情况

今天看到一个朋友在宣传一APP加固软件,所以笔者就和对方聊了起来,主要是想了解下当前游戏开发者目前盗版的一些情况和资料,结果聊完之后,大为震惊,发现当前国内游戏盗版严重,而且出现了很多问题,所以笔者就把这个文章写出来,给更多的开发者朋友当做一个提醒,希望能帮助各位开发者,当然也希望监管部门和应用商店人看到,保护正版开发者的利益,构建良性的移动互联网环境。...

.net系统自学笔记——泛型

泛型 1.概述 2.创建泛型类 3.泛型类的特点 4.泛型接口 5.泛型结构 6.泛型方法 一、概述 泛型是CLR定义的,所以支持.net的语言就支持泛型。 优缺点: 1.性能 2.类型安全 3.二制代码重用 4.代码的扩展 5.命名约定 (一)、性能 名词:装箱,拆箱。(性能损失) System.Collections.Generic名称空间中的List...

Java之lambda表达式

一、lambda表达式的写法 packagetest; //构造线程的两种方式:1、实现Runnable接口 2、继承Thread类 public classTest14 { public static voidmain(String[] args) { Thread thread = new Thread(newMyThrea...