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

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

目录

  • 背景
  • 工具
  • 分析流程
    • 登陆分析
    • 检索分析
    • 模拟HTML代码请求
    • 解析HTML
    • 再次分析
      • 分析js算法
      • 拿下furl
      • 拿下sfname
      • 拿下sfname
    • 构造请求
    • 再次瓶颈
    • 分析cookie
      • 成功演示
  • 总结

背景

最近在写论文,导师那里很严格,所以我打算去知网下载文章进行参考,但是需要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还原验证算法-解密某宝伪知网数据接口_第2张图片
登陆部分,没啥可用的数据,登陆进去是一个导航

登陆响应数据

{"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还原验证算法-解密某宝伪知网数据接口_第3张图片

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

模拟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还原验证算法-解密某宝伪知网数据接口_第5张图片
通过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还原验证算法-解密某宝伪知网数据接口_第6张图片

查看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还原验证算法-解密某宝伪知网数据接口_第7张图片
找到HTML代码,数据值就是我们要的数据,复制一下
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口_第8张图片
前往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还原验证算法-解密某宝伪知网数据接口_第9张图片
数据模拟成功后我们再次观察正确数据做下参数对比,发现数据是正确的
在这里插入图片描述

拿下sfname

分析js,找到class:‘cbItem’
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口_第10张图片HTML中的位置
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口_第11张图片
一样的,通过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还原验证算法-解密某宝伪知网数据接口_第12张图片
与前端数据做对比,结果也是一摸一样
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口_第13张图片

拿下sfname

观察js算法数据

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

构造请求

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

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

再次瓶颈

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

发现果真没有cookie不行
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口_第19张图片
那就再次重新开始,观察cookie的携带
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口_第20张图片
先不急着获取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还原验证算法-解密某宝伪知网数据接口_第21张图片
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口_第22张图片

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

分析cookie

sessionid vp8zc6jwbp6xoi1ig5ehi7zh82q9jdlw
AUTH_TOKEN eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

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

成功演示

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

总结

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

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

推荐专栏:

《Python爬虫脚本项目实战》

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

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

如果您对爬虫感兴趣请收藏或者订阅该专栏哦《Python爬虫脚本项目实战》,如果你有项目欢迎联系我,我会同步教程到本专栏!
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口_第25张图片

你可能感兴趣的:(Python爬虫脚本项目实战,chatgpt,python,爬虫,论文)