【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

这篇具有很好参考价值的文章主要介绍了【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

🐱背景

最近在写论文,导师那里很严格,所以我打算去知网下载文章进行参考,但是需要money,在同学的推荐下拿到了某宝一家免费的知网接口,今天就是对该网站的分析,最后成品会开源!在分析的时候被对方耍了一下,对方有一个登陆页面,登陆了后才发现只是个导航,其实登陆无所谓,只需要记住导航地址即可,但是还没完,我抓包发现,数据时HTML当我全部清洗干净后发现数据不是我想要的,对比网站HTML发现数据匹配不上,若大家对此类文章感兴趣欢迎订阅我的专栏《Python爬虫脚本项目实战

推荐我的爬虫文章
《记一次云之家签到抓包》
《记一次视频抓包m3u8解密过程》
《抓包部分软件时无网络+过代理检测 解决办法 安卓黄鸟httpcanary+vmos》
《Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)》
《某课抓包视频 安卓手机:黄鸟+某课app+VirtualXposed虚拟框架》

推荐专栏:

《Python爬虫脚本项目实战》

该专栏往期文章:
《【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)》

🥦如果感觉看完文章还不过瘾,欢迎查看我的其它专栏
🥦作者对python有很大的兴趣,完成过很多独立的项目:例如滇医通等等脚本,但是由于版权的原因下架了,爬虫这一类审核比较严谨,稍有不慎就侵权违规了,所以在保证质量的同时会对文章进行筛选

如果您对爬虫感兴趣请收藏或者订阅该专栏哦《Python爬虫脚本项目实战》,如果你有项目欢迎联系我,我会同步教程到本专栏!

🐱工具

  • 抓包软件
    Fiddler
    Stream(苹果手机)
  • 参考文章
    《某课抓包视频 安卓手机:黄鸟+某课app+VirtualXposed虚拟框架》
    《抓包部分软件时无网络+过代理检测 解决办法 安卓黄鸟httpcanary+vmos》

🐱分析流程

🐔登陆分析

【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
登陆部分,没啥可用的数据,登陆进去是一个导航

登陆响应数据

{"code":200,"session":"41766242260434","type":"3","expiration":"\u6c38\u4e45\u6743\u9650","msg":"\u767b\u9646\u6210\u529f\uff0c\u8fc7\u671f\u65f6\u95f4\uff1a\u6c38\u4e45\u6743\u9650","cardtime":"3650","rename":"0"}

🐔检索分析

找到知網入口一,发现在跳转的同时访问了某个接口,由于我这里网页抓取不到,只能用抓包工具了

这里本来打算用Fiddler,电脑上我都用这个,结果这个抓不到数据,安卓手机上我用黄鸟,现在只有iphone 我下载了
Stream(苹果商店可以下载)

参考文章
《某课抓包视频 安卓手机:黄鸟+某课app+VirtualXposed虚拟框架》
《抓包部分软件时无网络+过代理检测 解决办法 安卓黄鸟httpcanary+vmos》
网址跳转重定向的时候,闪过了一个域名

https://xxxxx.com/9988.php
这是我手机抓到的数据盲猜和后面的cookie算法有关,这里先不做探究了
响应数据:
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

请求参数
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

🐔模拟HTML代码请求

既然数据都在网页里面直接获取检索后的HTML代码即可

import requests


cookies = {
    
}

headers = {
    'Accept': 'text/html, */*; q=0.01',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Connection': 'keep-alive',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    # 'Cookie': 'SID_kns_new=kns25128007; knsLeftGroupSelectItem=1%3B2%3B; dblang=ch',
    'Origin': 'http://119.45.237.51',
    'Referer': 'http://119.45.237.51/kns8/defaultresult/index',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest',
}

data = {
    'IsSearch': 'true',
    'QueryJson': '{"Platform":"","DBCode":"CFLS","KuaKuCode":"CJFQ,CCND,CIPD,CDMD,BDZK,CISD,SNAD,CCJD,GXDB_SECTION,CJFN,CCVD","QNode":{"QGroup":[{"Key":"Subject","Title":"","Logic":1,"Items":[{"Title":"主题","Name":"SU","Value":"你好,“海油观澜号”","Operate":"%=","BlurType":""}],"ChildItems":[]}]},"CodeLang":"ch"}',
    'SearchSql': '0645419CC2F0B23BC604FFC82ADF67C6E920108EDAD48468E8156BA693E89F481391D6F5096D7FFF3585B29E8209A884EFDF8EF1B43B4C7232E120D4832CCC8979F171B4C268EE675FFB969E7C6AF23B4B63CE6436EE93F3973DCB2E4950C92CBCE188BEB6A4E9E17C3978AE8787ED6BB56445D70910E6E32D9A03F3928F9AD8AADE2A90A8F00E2B29BD6E5A0BE025E88D8E778EC97D42EF1CF47C35B8A9D5473493D11B406E77A4FF28F5B34B8028FE85F57606D7A3FED75B27901EEF587583EBD4B63AC0E07735BE77F216B50090DEE5ABB766456B996D37EB8BDACA3A67E8126F111CF9D15B351A094210DB6B4638A21065F03B6F0B73BB4625BBECE66F8197909739D8FB4EB756DEF71864177DFA3CB468CFA6E8ABF7924234DED6B0DFD49D9269CBA4A2BF4075D517A61D094225D70C1B4C137DB9614758A5E097376F5F3E55A7063A4B7E437436D13FF3CC8FB435E131FFCD16FC30DD997098B4FC997D995E767E2712175BC05B960D3FEB5CAF12A13BD1CE3530AD72FC4DB93206996E216BC5DC294960A0CA05E986848E1E64FFC5A52BFCB41A97840A708E397F11EFF261E08F3A34094061AE8E8F819AF6A17A9E2176C3893C6DD3E3C06864C91989BDEF9790A38FAF2524B17743B30EBA4ADD550BF985F9C3097A608C697283CE37F8CB78BDC9EAA4874C3485E6F931B016EC41BFBC0EF91B2AD7E1B424E1DFB8FC8771DEA2458C5A7A4C9BF0192C101FD8EDDEE1BACB44C3E478361EF0D1B70FAD56BCF6870A6044D3A226611B9C1A43C6F9F7C021C98E0D5F778D72C87183F026071A730B8BB4FABF9F68FEC783AB1E6E79218B5D87FD1BB541817FB4F3C21DC849A803CB8A620A2EE00475BAF2CE6556638B7A949B446F39A1076DA15764A777BA6239447CB91F4CF513325366E167D268DDB75F288B5C13415CE62F5C431181C044A28CA502FF14439E5C6F63D419CB6DE1360DB01593FE765459299E442EE24917C199AB5178F38461F8C4EBBC95344C5F2AB60F379813A87E2E3AFE3021198B8222CEAB870D9A353786079961184D63977917C7DF8FE6AFBBC795A832BDD454D6E3CD22C3FF7A58808923DD6F464C12A9A88FBFD0C71458AB0E4C1D566315181A9578ECE93670E5CAF13CF2553F68E64726C131F4A48B42A9E7F09EFEBA51D1FDA6BA0ECA0B02B951ECC04548F1D4D08DB69D0EFDCE6793537BB8E59DC442631A9CDBA13878D7493AADA0CD868C1C1C3A6A6FA17C4109205A83F9C0C43E0D2551D0A8592EA99D20D4B78B4EEEE2D53A543701F620C7D6FF46E800B0CEF9B3D23ACD62C7CBEA25FC8BD74D5A0E5C86B9CF3FCACBDBE585AFF85F9689CBF5BCBD267C580361D5B93AA9BD5A1BB6122BB87C04AE227211FE675A4650814F2285261E5641683D65E0454E2597F6025BB4AA1A044D7B97F57394EA5EC878B80FC0A82F12E2D3D9E1BCB062A7ABB290F02116BDED95761A67CE2FDDE42BDDDF34F22E49A0406D724FEBC86B93F80BB52A8D34B8D2B24288ECBC3F90CCB1EF36085E77F1E2AE0AB411FE60A033E704A21469EA5CE4BB8AF6B1C1F1C5F1F084472D57F458CC39F0B2FE583D0795159E9E38BD1102F5D96DB0F828B66F41A702BB0AE59E40CF53BE7F6342EF208434CFFABF845AFD771B288D484BB79952159E6EA27658A6B6230557AF16E86C4AFDF973DBD5A3A2B979AD9037441409D22A954DC50CBCEA8EA5AC500C4BC8282DCE2626BD2B2CB4B1E33B2E1F92533F7F04C48D061907DBCE3E21FF0A77F09C1AE33E769962CD1EDE6B688590D569409EE9EEC4DF1074DCC97C43B0EDAF1C38B5B2784ABC803D9B3B4FC35F46CB1E275E7F83036FC6AFF2E624D4D2E6AE1C2D4CE3FF219FA90A935957E0DE1A386E4AAB5C9F9D1CECA909F5698BFA86C57B6A73D3C0F9FDB94128B7BB9FDD19D57E4C2C2F4127A1F127A96ABF248B26D8B6EF12A1EA97D064564D33D46E5CA71F53FA121A7E5C91ED2B08BE64A0E3D22BE26FC251C0BF4CF21674DE19AF410E3EDFBD9A4BBEA6C709A1E42B5C17E1EE7AA33EFB0F375BF0858D49210A71662313FA5B8E04E508A5E9425D49C3C5D12CB8DCADBF8A148BFA042BBB0218AAC403AAB9CECC45FD33CEC6797FC984BF91FF638AF6E1F09546F595CFC779D2D867282C63B78DC6A6ED3C1C3887462C84AC07C756C5A8D8A8B2EFD39C28A68D47091A3312461BC20085636F4B41F22D5B46861F3E557777CDCFDFE6CAB8ABECFECA3634D779C0F21185772CA46EA1C0B1E0191F02F11A2B10372550A8B839D8C819F77A67512CA57D16DBA687D1BB77271E375C6DD3432C804B0A707D0DF7D72108E3190885E95DE0F0F118A904C80D606BB82C582FF3E3D836AED573EA426D382FF3D0C83B51E0E63B863FC20F67D2C68C14558E2EEDED6B71B615A74152632E0E1A4BFC01F083BEEA6E702D1650038B1826D1970F88507FB5E5C07A18F3BD94177B73C5C9E960EE73ED66B353BB65245EABB7D552BA6F27425B703A081479862CF0C6A2102A796F0B93F072D362F8CE04AB334C4342186C69F946794EE812FFC903D270DF98BCEAF98F8C4D685BB25DD848FBDE28BE6A5DB4564BF4D9115620B5BA45E1A86A44A0F4A1D1839184E8E952AB38050D6C2A5378577AB09FA6A5167AA498C61F04853CCA741B2A360E4EA67F8F67E4739DFB9DF144C9D44CBAFEA30AD7B764F276F570674A2333F36EB6C9051026EA82DE60C00EFB5DF9661474D1A9DDD4137C8E7DC9E1B9C4D4E6D9091E5764AECB618E94F85A503FBACE93CAB29A06953832D09B0209A14A166A74F1CD4897AE8859A481A4DBFAD581995A658F3760823F3D9B538DD0053554A723CBD58B946830D2FA2B6D7B488523EEBCC212063F740F5127D3FFE63AA9C5D7C62255D6DBB79EAFD56880D73477414AD8D88B4742516151C806BE56D392C9CBE1A8104D60E50DAFED1F5C838D2F6FBBF261AEC9AE8967DE29EC73BFDEC898D8AAF7991469D79734D3C1D41A1F2B96206D598E265C331B6C38A49B14453322F18EEBEF1B6D4FEBC2515A695E7D9468E8BB142A4FD9AADFF88397AD8E94BE63C807C65CF264485BFE49D8C2812F7E37B4B987F7A6C15283D068254EA587B04018CDF19DC5612BFBDAF0C937B872A907A8719868DFF55700CC215B580190CE1DA4293C56FE8C836F6804347495F534768BA0F62A17C4F19346CA711FD1F71EB7C0720313ABC0D4FB70E0A567320E1F9CC052DF2C937A85',
    'PageName': 'defaultresult',
    'HandlerId': '0',
    'DBCode': 'CFLS',
    'KuaKuCodes': 'CJFQ,CCND,CIPD,CDMD,BDZK,CISD,SNAD,CCJD,GXDB_SECTION,CJFN,CCVD',
    'CurPage': '1',
    'RecordsCntPerPage': '20',
    'CurDisplayMode': 'listmode',
    'CurrSortField': '',
    'CurrSortFieldType': 'desc',
    'IsSortSearch': 'false',
    'IsSentenceSearch': 'false',
    'Subject': '',
}

response = requests.post(
    'http://*****/kns8/Brief/GetGridTableHtml',
    cookies=cookies,
    headers=headers,
    data=data,
    verify=False,
)
print(response.text)

打印结果

<script src="/c_data.js"></script><form method="post" name="gridTableForm">
    <div id="gridTable" class="search-result">
<div class='toolbar'><div id="countPageDiv" class="result-con-r"><span class='pagerTitleCell'>共找到<em>1</em>条结果</span></div><div class='toolbar-col'>
        <div class="checkcount">
            <label class="checkAll"><input type="checkbox" name="selectCheckbox" id="selectCheckAll1" onclick="$(this).filenameClick()">全选</label>
            <span>已选:</span>
            <em title='点击查看所选文献' id='selectCount' name='selectCount' onclick='window.open(APPPATH + "/manage.html"+(GetQueryStringByName("subject")?"?subject="+GetQueryStringByName("subject"):""))'>0</em>
            <a href="javascript:$.filenameClear();">清除</a>
          </div>         
          <ul class="dropdown-analysis-btns" id="batchOpsBox">
			<li class="bulkdownload export"><a href="javascript:void(0)">批量下载</a></li>
              <li>
                <a href="javascript:void(0)">导出与分析</a><i class="icon-d"></i>
                <ul>
                  <li class="export">
                    <a href="javascript:void(0)">导出文献</a>
                    <i class="icon-r"></i>
                    <ul class="secondUl">
                      <li><a href="javascript:void(0)" exportType="GBTREFER">GB/T 7714-2015 格式引文</a></li>
                      <li><a href="javascript:void(0)" exportType="elearning" >知网研学(原E-Study)</a></li>
...
...
...
...
..

🐔 解析HTML

安装bs4
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
通过bs4解析标签内容

bs = BeautifulSoup(response.text,"html.parser")

print("downloadlink:"+bs.select('.downloadlink')[0]['href'])
print("cbItem:"+bs.select('.cbItem')[0]['value'])
print("title:"+bs.select('.fz14')[0].get_text())
# print("来源:"+bs.select('.source')[0].get_text())
# print("作者:"+bs.select('.author')[0].get_text())
print(f'标题:{bs.select(".Mark")[0].get_text()},来源:{bs.select(".source")[0].get_text()},作者:{bs.select(".author")[0].get_text()}')
furl_ = bs.select('.downloadlink')[0]['href'].split('?')
furl=furl_[1]

sfname_ = bs.select('.cbItem')[0]['value'].split('!')
sfname = sfname_[1]
title=bs.select('.fz14')[0].get_text()

🐔 再次分析

🐟分析js算法

我再查看源码的时候无意发现了它,原来他是这个接口拼接的算法
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

查看c_data.js的数据,我们发现最后的接口是通过js算出来渲染到首页的,所以接口应该是

https://cnki-oss******/download?“+furl+”&fileid=“+sfname+”&title="+title

function ddata()
{
	$('.result-table-list tr').each(function (i){
	if(i>0)
	{
	 var sfname="",dbcode="",author="",source="",title="",time="",type="";
	 
	 var fz14= ($(this).find("a[class='fz14']"));
	 var url0=fz14.attr("href");
	 var title=$.trim(fz14.text());
	 var briefDl=$(this).find("a.downloadlink");
	 var quote=$(this).find("a.icon-quote");
	 var collect=$(this).find("a.icon-collect");
	 var url1=briefDl.attr("href");
	
	var FileNameS=$(this).find("input[class='cbItem']").val();
	arr=FileNameS.split('!');
	if(arr!=null)
	{
		dbcode=arr[0]
		sfname=arr[1];
	}	 
	 var furl="";
	 if(url1!=null)
	 {
		arr=url1.split('?');
		if(arr!=null)furl=arr[1];
	 }
	 author=$.trim($(this).children(".author").text());
	 source=$.trim($(this).children(".source").text());
	 time=$.trim($(this).children(".date").text());
	 var newUrl="https://cnki-******/download?"+furl+"&fileid="+sfname+"&title="+title;
	
	 $(this).find("a").attr('href',newUrl);
	 briefDl.removeClass("icon-notlogged").addClass('icon-download');
	 quote.attr('href','javascript:void(0)');
	 collect.attr('href','javascript:void(0)');
	 briefDl.attr('title',"涓嬭浇");
	 fz14.attr('title',sfname);
	 
	  }
   });
   
	//BriefOnload();
}

🐟 拿下furl

因为现在有了chatgpt,于是我们直接上手去问吧,先找到js所提到的downloadlink

【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
找到HTML代码,数据值就是我们要的数据,复制一下
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
前往Chatgpt通过js代码查看打印,构造代码

因为js算法中:

arr=url1.split('?');
if(arr!=null)furl=arr[1];

所以

var url1=“/kns8/download?filename=6FXYXBjcRZlN3NkV1MmcUBXaRp2dNpWNodDNI9EWrATeVpkRKhjS6V0dqZkZid1bW5EOBN3QtN1dyJkYjFUVapHTjZnQsFUbQN2M1cFMLlkU5ZXdKZ2Vk9UNjdXc3QkaJtyatNzTxcEd5RWW4IFNXdUdi9kSVNWO&tablename=CJFDLAST2022”;
arr=url1.split(‘?’);
请输出一下arr[1]

看一下回答结果
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
数据模拟成功后我们再次观察正确数据做下参数对比,发现数据是正确的
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

🐟拿下sfname

分析js,找到class:‘cbItem’
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口HTML中的位置
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
一样的,通过chatgpt来进行还原验证
原代码:

var FileNameS=$(this).find("input[class='cbItem']").val();
	arr=FileNameS.split('!');
	if(arr!=null)
	{
		dbcode=arr[0]
		sfname=arr[1];
	}	

改造后,发送给Chatgpt来进行验证

var FileNameS="CJFDLAST2022!KJFT202228004!1!0";
	arr=FileNameS.split('!');
	if(arr!=null)
	{
		dbcode=arr[0]
		sfname=arr[1];
	}	
打印sfname的值

输出结果

var FileNameS = "CJFDLAST2022!KJFT202228004!1!0";
var arr = FileNameS.split('!');
if (arr != null) {
  dbcode = arr[0];
  sfname = arr[1];
}
console.log(sfname);
输出:KJFT202228004

输出图片:
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
与前端数据做对比,结果也是一摸一样
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

🐟拿下sfname

观察js算法数据

【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
这里可以不用做验证,直接找到数据
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
分析结束,接下来就是通过python进行构造请求

🐔 构造请求

构造结果
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
测试访问是否能下载

【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
好像出了点问题,排查发现没有title,原来是ide的问题,手动复制粘贴吧
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口再次测试,的确是能下载下来
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

🐔再次瓶颈

换了个浏览器,居然还是拒绝访问,所以?猜测cookie肯定是需要的,将cookie清除或者禁用后
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

发现果真没有cookie不行
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
那就再次重新开始,观察cookie的携带
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
先不急着获取cookie,先一段代码,测试下cookie存在的情况下是否能下载

通过requests构造请求,将链接和参数直接改为我们上面获取到的链接,携带cookie测试

import requests

cookies = {
    'sessionid': 'vp8zc6jwbp6xoi1ig5ehi7zh82q9jdlw',
    'AUTH_TOKEN': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjQxNzY2MjQyMjYwNDM0IiwidXNlcl9pZCI6NjYwMTgzLCJlbWFpbCI6IiIsImV4cCI6MTY4MTg4NjQ4OH0.VLkygFS8FuT6X2FE8jbJF9IwBAC7pp1gT1gtdcFCRlM',
}

headers = {
    'authority': 'cnki-oss.doc110.com',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-language': 'zh-CN,zh;q=0.9',
    'sec-ch-ua': '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36',
}



response = requests.get('https://*******api/download?filename=uB3KqZmb4Qndj1kWvhHV3sCZytGNMtWYxlEe4lUMaFlQKFjaxwWVlFVWRRzdCd2axM2V1UWVrVnQrpXcoRWcPNmSw9Wb2hkdCxGOsRWNqp0cGhUeQl2bTBTbstUZplUeXZ1ZipkYJhGOQdEWwlkeQd2cKxEVypUQ&tablename=CJFDLASN2020&fileid=SJSM202008052&title=',  cookies=cookies, headers=headers)

# 判断请求状态码是否为200
if response.status_code == 200:
    with open('file.pdf', 'wb') as f:
        f.write(response.content)
    print('下载成功!')
else:
    print('下载失败!')

测试结果
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

成功了,接下来就是获取cookie

🐔分析cookie

sessionid vp8zc6jwbp6xoi1ig5ehi7zh82q9jdlw
AUTH_TOKEN eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

cookie的时间大概是1个月,我在考虑这部分要不要弄,因为接口的拼接属于偶然,再次去找cookie的算法有点折磨人,暂时就这样用着,后面需求多了再考虑分析

🐟 成功演示

【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

🐱总结

以上就是今天教程,在对教程分析时,由于博主是一边分析一边记录,最后再放到相关的地方,会存在逻辑先后的不明确,建议大家有问题不要卡在那里,继续往下,在做分析的同时发现了对方是利用cookie和ip来进行检测的,这与我最初的结论是不一样的,对于IP注册和cookie获取可能需要完整的进行整个流程的操作(若我做出了更新会同步到文章【分析Cookie】部分)

推荐我的爬虫文章
《记一次云之家签到抓包》
《记一次视频抓包m3u8解密过程》
《抓包部分软件时无网络+过代理检测 解决办法 安卓黄鸟httpcanary+vmos》
《Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)》
《某课抓包视频 安卓手机:黄鸟+某课app+VirtualXposed虚拟框架》

推荐专栏:

《Python爬虫脚本项目实战》

该专栏往期文章:
《【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)》

🥦如果感觉看完文章还不过瘾,欢迎查看我的其它专栏
🥦作者对python有很大的兴趣,完成过很多独立的项目:例如滇医通等等脚本,但是由于版权的原因下架了,爬虫这一类审核比较严谨,稍有不慎就侵权违规了,所以在保证质量的同时会对文章进行筛选

如果您对爬虫感兴趣请收藏或者订阅该专栏哦《Python爬虫脚本项目实战》,如果你有项目欢迎联系我,我会同步教程到本专栏!
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口文章来源地址https://www.toymoban.com/news/detail-421710.html

到了这里,关于【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【爬虫JS混淆分析】某网站票房响应数据加密(含JS补环境调用与Python解密算法)

    【作者主页】: 吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》,对分布式爬虫平台感兴趣的朋友可以关注《分布式爬虫平台搭建

    2024年02月04日
    浏览(72)
  • 全网首发,Python解决某象滑动还原验证码100%还原

    与一般的滑动验证码不同,某象的滑动还原验证码是将图像上下两块分割,然后在随机一块往右移动,将两块拼图移动成完整的图像才算成功,事实上,解决这类验证码比普通的验证码还要简单 数据集: 我随机采集了某象任意张数据集,将其标注好,top和down代表的是原图中

    2024年02月12日
    浏览(59)
  • 【爬虫实战项目】Python爬虫批量旅游景点信息数据并保存本地(附源码)

    今天给大家介绍的是Python爬虫批量下载旅游景点信息数据,在这里给需要的小伙伴们代码,并且给出一点小心得。 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本数据爬取的人会很多,所以我们需要考虑更换代理IP和随

    2023年04月20日
    浏览(48)
  • 不用FFMpeg,用Python代码解密ts文件还原mp4视频(前提:有正确的key)

    好不容易下载了.ts视频,但内容全被加密。要解密的前提条件是必须先有正确的key文件,然后对.ts文件进行AES-128解密,还原成.mp4视频。 以往的做法是用FFMpeg命令: 现在可以用Python代码直接解密。 非常感谢这篇文章给我参考的灵感: 流媒体m3u8爬虫研究 - Echocipher 首先Python要

    2024年02月02日
    浏览(58)
  • jsvmp逆向实战x-s、x-t算法还原

    什么是jsvmp jsvmp就是将js源代码首先编译为自定义的字节码,只有对应的解释器才能执行这种字节码,这是一种前端代码虚拟化保护技术。 整体架构流程是服务器端通过对JavaScript代码词法分析 - 语法分析 - 语法树-生成AST-生成私有指令-生成对应私有解释器,将私有指令加密与

    2024年02月06日
    浏览(43)
  • 一个完整Python实战项目:selenium识别验证码实现自动登录,自动操作浏览器获取某东数据

    最近都没啥时间,很久没更新了。 今天分享一下,如何用selenium识别验证码,实现自动登录以及获取数据。 目标:某东 话不多说直接开始 环境 Python 3.10 Pycharm 模块使用 import random import time from selenium import webdriver import pyautogui import base64 import ddddocr import csv win + R 输入cmd 输入安

    2024年02月04日
    浏览(49)
  • ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式、爬虫阻止)

    “已阅即焚” 是一种通信方式,它指的是一旦消息被对方阅读后,消息内容会被自动删除或销毁,不再留下任何痕迹。这种方式通常用于提高信息的安全性和隐私保护。 在传统的通信应用中,已阅即焚的功能可以通过以下几种方式实现: 自动删除:消息在对方阅读后,会自

    2024年02月16日
    浏览(90)
  • 【爬虫】实验项目三:验证码处理与识别

    目录 一、实验目的 二、实验预习提示 三、实验内容 实验要求 基本要求: 改进要求A: 改进要求B: 四、实验过程 基本要求 五、源码如下 六、资料         部分网站可能会使用验证机制来阻止用户无效登录或者是验证用户不是用程序控制访问网站的,如 reCAPTCHA 系统。

    2024年02月10日
    浏览(39)
  • Python入门教程+项目实战-11.5节: 程序实战-选择排序算法

    目录 11.5.1 排序算法简介 11.5.2 选择排序算法 11.5.3 系统学习python 所谓排序,是指将数据集合中的元素按从小到大的顺序进行排列,或按从大到小的顺序进行排列。前者称为升序排序,后者称为降序排序。在数据结构与算法这门课程中,我们会学习到诸多与排序相关的算法,

    2024年02月02日
    浏览(51)
  • Python入门教程+项目实战-10.5节: 程序实战-冒泡排序算法

    目录 10.5.1 排序算法简介 10.5.2 冒泡排序算法 10.5.3 系统学习python 所谓排序,是指将数据集合中的元素按从小到大的顺序进行排列,或按从大到小的顺序进行排列。前者称为升序排序,后者称为降序排序。在数据结构与算法这门课程中,我们会学习到诸多与排序相关的算法,

    2023年04月21日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包