Python使用网络抓包的方式,利用超级鹰平台识别验证码登录,《爬取古诗文网》。

上篇–识别验证码

序言:
哈喽,各位小可爱们,我又来了,这次我新学习到的内容是python爬虫识别验证码。我这次用的是网络抓包工具来爬取,就是直接使用Requests模块进行抓取数据,除此之外还需要借助超级鹰平台进行验证码识别。
废话不多说,直接上代码:

import time
import requests
from chaojiying import Chaojiying_Client
time1=str(int(time.time()*1000))
url="https://so.gushiwen.cn/RandCode.ashx?"
f_url=url+time1
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.70"}
params={"t":time1}
response=requests.get(url=url,headers=headers,params=params)
img=response.content
with open("img.jpg","wb") as f:f.write(img)
chaojiying = Chaojiying_Client('用户名', '密码', '软件id')  #用户中心>>软件ID 生成一个替换 96001
im = open('img.jpg', 'rb').read()                                                  #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
print("识别结果:",chaojiying.PostPic(im, 1902)["pic_str"])

上面是全部代码,接下来就由我为大家进行详细地讲解…

1.导入相关模块
在这里我们需要调用的模块有time,requests,以及从本地文件中调取chaojiying相关类。

import time
import requests
from chaojiying import Chaojiying_Client
time1=str(int(time.time()*1000)) #导入相关模块

1.time是用来计算时间戳(关于时间戳的解释)的,以及time的具体用法。在这里我们主要用的是time.time()方法,来返回一个时间戳。
2.requests模块模拟浏览器发送请求,具体用到get方法,在我的爬取彼岸图网的这篇文章中已经解释了为什么用get方法而不是post方法。
3.从本地文件中引入相关模块。

2.利用网络抓包工具抓取url,并发起请求
首先,我们打开古诗文网,点击“我的”,进入登陆页面,明确我们此次的目的是识别验证码。


然后,打开我们的抓包工具,就是点击鼠标右键,会出现“检查”选项,点击“检查”,进入抓取界面。附图:

这是我们打开抓包界面之后的出现的界面:


点击验证码,查看抓包界面中的”network"或者是“网络”选项,之后会出现一张图片的链接(图片的格式一般是jpg或者gif):

再点击它,出现:


1.我们用到的具体信息就是红线圈出的部分。查看“请求URL”中的upl信息,我们可以发现问号之后的url信息就是我们上面列的第二张图的“t”!
2.再看一下发现,这是get请求。
3.“t”的信息是什么?我们了解到验证码它随时更换的,假如你在一段时间不输入验证码,就算有这个验证码,服务器也会给你报错“验证码错误”。所以我们猜想,“t”或许跟时间戳有关。
4.我们验证一下发现“t”就是时间戳*1000,再去掉小数位!!
所以就有了下面的代码:

time1=str(int(time.time()*1000))#将时间戳转化为params参数中的 “t”
url="https://so.gushiwen.cn/RandCode.ashx?"
f_url=url+time1 #验证码图片的url,运用到了字符串的拼接
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.70"}#UA伪装
params={"t":time1}
response=requests.get(url=url,headers=headers,params=params) #get方法发起请求

3.获取响应数据,并保存到本地
为什么要保存数据呢?
因为超级鹰平台有一个写好的文件里需要用到“这个文件路径”。超级鹰文件部分代码如下:

if __name__ == '__main__':chaojiying = Chaojiying_Client('用户名', '用户密码', '软件id')   #用户中心>>软件ID 生成一个替换 96001im = open('文件路径', 'rb').read()                                                   #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//print (chaojiying.PostPic(im, 文件类型))                                             #1902 验证码类型  官方网站>>价格体系 3.4+版 print 后要加()

保存数据的代码如下:

img=response.content #将数据转化成二进制字节流
with open("img.jpg","wb") as f:f.write(img) #with open方法

4.导入chaojiying文件相关模块,获取验证码信息

chaojiying = Chaojiying_Client('c1234567', 'Wasd11314788', '919951')  #用户中心>>软件ID 生成一个替换 96001
im = open('img.jpg', 'rb').read()                                                  #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
print("识别结果:",chaojiying.PostPic(im, 1902)["pic_str"] #获取验证码)

超级鹰获取的验证码信息在“chaojiying.PostPic(im,1902)”这个字典里,要想访问字典的值,就需输入字典的键。

好啦,今天的内容就到此结束了,谢谢你的阅读!!!如果觉得还行,就点个小小的赞吧!

文 | 戴眼镜的it小孩纸

Python使用网络抓包的方式,利用超级鹰平台识别验证码登录爬取古诗文网、上篇--识别验证码相关推荐

  1. Python真香之爬取古诗文网

    最近在学习Python相关,学习了基本的语法后想搞点事情试试,所以来爬取下古诗文网中的相关作者信息 准备资料: 爬取目标:爬取古诗文网的唐代作者的信息 目标分析: 一级页面是所有唐代作者的列表,点击名 ...

  2. Python爬虫(一)——爬取古诗文网,初识什么是爬虫

    首先来说下什么是爬虫,按照百度百科的说法是:是一种按照一定规则,自动抓取万维网信息的程序或者脚本:首先它是程序,需要我们定义好规则,然后程序就会按照定义好的规则抓取网络上的信息,数据抓取下来了之后,需 ...

  3. python输出古诗词_python爬取古诗文网

    解析:正则表达式 代码 import requests import re def parse_page(url): headers = { 'User-Agent': 'Mozilla/5.0 (W ...

  4. Python实战---使用正则表达式爬取古诗文网

    使用正则表达式爬取古诗文网 爬取目标 具体字段为: title 标题 dynasty 朝代 author 作者 content 内容 tag 标签 实现代码 ''' @Description: 使用正 ...

  5. python爬虫入门_3种方法爬取古诗文网站

    目的: 爬取古诗文网的古诗词,获取详细信息,目标网站:https://www.gushiwen.org/default.aspx?page=1 1.根据网页分析可知 下面包含了当前页面的所有信息,所以 ...

  6. Python 正则表达式之爬取古诗文名句

    Python 正则表达式之爬取古诗文名句 概述: 山有木兮木有枝,心悦君兮君不知. 概念介绍: 正则表达式:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合 ...

  7. python爬取新闻存入数据库_python 爬取古诗文存入mysql数据库的方法

    使用正则提取数据,请求库requests,看代码,在存入数据库时,报错ERROR 1054 (42S22): Unknown column 'title' in 'field list'.原来是我写s ...

  8. Python爬虫爬取古诗文网站项目分享

    作为一个靠python自学入门的菜鸟,想和大家分享自己写的第一个也是目前为止唯一一个爬虫代码 写爬虫要具备的能力基础:python入门基础,html5基础知识,然后这边用的是scrapy框架,所以还要 ...

  9. 第一个简单Python爬虫:抓取古诗文网中李白的诗歌

    2018年10月11日  这是第一个博客,嘻嘻~~~~ 最近老师给了个任务:爬取诗歌.于是乎,走上了爬虫道路,爬取了李白的诗歌. 感谢代码的原作者(唐诗三百首,源代码). 遇到的问题与收获: 1.熟悉 ...

最新文章

  1. Kettle和ETL的基本构成
  2. 使用parted命令对硬盘进行操作
  3. C#下实现动态系统托盘图标
  4. 插入空行_如何一键插入表格空行,这个方法才最高级!
  5. PHP Calendar 函数,wordpress函数get_calendar()用法示例
  6. c语言字符串提取第二个字符,c语言如何复制字符串(取前n个字符)strncpy()函数的应用实例...
  7. request.setAttribute()与request.getAttribute()取值问题
  8. 十年 IT 老兵告诉你如何快速构建可直接落地、基于开源的低成本架构! | 技术头条...
  9. virtualenv虚拟独立python环境使用
  10. 推荐一款wordpress个人博客主题,中文版主题
  11. java用循环图形显示_请问如何在使用循环绘制图形时使每个图形的显示之间有一定的延迟时间?...
  12. 那些值得吟唱的诗词歌赋
  13. php 相似文章,PHP TF-IDF与余弦相似性计算文章相似性
  14. 刷脸支付互联网巨头纷纷从线上走到线下
  15. android getruntime.exec 权限
  16. Far planner代码系列(1)
  17. 矩阵分析L2 线性映射与线性变换
  18. 百度地图显示武汉市民出行减少76%,在用实际行动防控疫情
  19. 很抱歉,office即点即用安装程序遇到问题,因为你的计算机安装基于window Installer的office程序
  20. 电脑蓝屏代码错误分析及解决方案

热门文章

  1. 计算机如何将01转化为高低电平
  2. 云和恩墨大讲堂·武汉站圆满落幕,矢志不移再出发(附演讲PPT下载)
  3. VS2019创建和使用静态库(.lib文件)
  4. sql删除用逗号分隔字段中的某一个值
  5. 常用电平标准(TTL、RS232、RS485、RS422)
  6. visionpro学习再研究,camera实时观察和调用(四,追着自己跑,megauging继续推进)
  7. 程序员成长之旅——Delphi实现一个简单的科学计算器
  8. [RedHat学习笔记]总结现学的所有命令(RH033),以及相关概念。
  9. 太阳人人都恨布鲁斯 小斯愤怒:马刺是支肮脏球队
  10. 怎样将discuz所有页面的Powered by Discuz!去掉