我写的代码如下
def web_get_cookies():
loginurl="http://admin.prod.sinacourt.com/admin.php/index/login"
url = 'http://admin.prod.sinacourt.com/admin.php/index/login'
weburl = "http://admin.prod.sinacourt.com/admin.php/arbitral_cases/index?"#数据请求地址,接口完整地址通过param拼接
header = {
'Host': 'admin.prod.sinacourt.com',
'Referer': 'http://admin.prod.sinacourt.com/admin.php/index/logout',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36'
}
loginsession = requests.Session()
f = loginsession.get(url, headers=header)
gettoken = BeautifulSoup(f.content, "html.parser")
tokens = gettoken.find('input', {'name': '__token__'})['value']#获取token,用于登录传参
resp = loginsession.cookies
cookie = requests.utils.dict_from_cookiejar(resp)
jsonCookies = json.dumps(cookie)
with open('cookie.json', 'w') as f:
f.write(jsonCookies)
with open('cookie.json', 'r', encoding='utf-8') as f:
listCookies = json.loads(f.read())
cookiestr=str("PHPSESSID"+"="+listCookies['PHPSESSID'])
uuid_str = uuid.uuid4().hex
img_path = f'tmpfile_{uuid_str}.jpg'#获取验证码图谱按
with open(img_path, 'wb') as f:
f.write(loginsession.get(image_url,headers=imgheaders).content)
yzm=input("请输入验证码:")
data = {
'__token__': tokens,
'username': '登录账号',
'password': '登录密码',
'captcha': yzm
}
header={
'Cookie':cookiestr,
'Host': 'admin.prod.sinacourt.com',
'Origin': 'http://admin.prod.sinacourt.com',
'Referer': 'http://admin.prod.sinacourt.com/admin.php/index/login',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest'
}
post = loginsession.post(loginurl,data=data,headers=header)#模拟登录
print(post.text)#打印登录信息
t = time.time()
ttr = int((t * 1000))
data = {
'addtabs': '1',
'sort': 'case_id',
'order': 'desc',
'offset': '0',
'limit': '10',
'filter': '{}',
'op': '{}',
'_': ttr,
}
header = {
'Accept': 'application / json, text / javascript, * / *; q = 0.01',
'Accept - Encoding': 'gzip, deflate',
'Accept - Language': 'zh - CN, zh;q = 0.9',
'Cookie': cookiestr,
'Content - Type': 'application / json',
'Host': 'admin.prod.sinacourt.com',
'Origin': 'http: // admin.prod.sinacourt.com',
'Referer': 'http://admin.prod.sinacourt.com/admin.php/arbitral_cases?addtabs=1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36',
'X - Requested - With': 'XMLHttpRequest'
}
resp = loginsession.get(weburl, headers=header, params=data, verify=False)#请求参数
print(resp.text)
返回的参数,不是我想要的json数据,而是页面代码。
C:\Python39\python.exe E:/PycharmProjects/uploadfile.py
请输入验证码:xvxb
{"code":1,"msg":"登录成功!","data":{"url":"index\/index","id":1,"username":"admin"},"url":"\/admin.php\/index\/index","wait":3}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta name="renderer" content="webkit">
<link rel="shortcut icon" href="/assets/img/favicon.ico" />
<!-- Loading Bootstrap -->
<link href="/assets/css/backend.css?v=1645783983" rel="stylesheet">
<!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
<!--[if lt IE 9]>
<script src="/assets/js/html5shiv.js"></script>
<script src="/assets/js/respond.min.js"></script>
<![endif]-->
<script type="text/javascript">
var require = {
config: {"site":{"name":"\u540e\u53f0\u7ba1\u7406","cdnurl":"","version":1645783983,"timezone":"Asia\/Shanghai","languages":{"backend":"zh-cn","frontend":"zh-cn"}},"upload":{"cdnurl":"","uploadurl":"ajax\/upload","bucket":"local","maxsize":"10mb","mimetype":"jpg,png,bmp,jpeg,gif,zip,rar,xls,xlsx,pdf","multipart":[],"multiple":false},"modulename":"admin","controllername":"arbitral_cases","actionname":"index","jsname":"backend\/arbitral_cases","moduleurl":"\/admin.php","language":"zh-cn","referer":null,"__PUBLIC__":"\/","__ROOT__":"\/","__CDN__":""} };
</script>
</head>
<body class="inside-header inside-aside ">
<div id="main" role="main">
<div class="tab-content tab-addtabs">
<div id="content">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<section class="content-header hide">
<h1>
控制台 <small>Control panel</small>
</h1>
</section>
<!-- RIBBON -->
<div id="ribbon">
<ol class="breadcrumb pull-left">
<li><a href="dashboard" class="addtabsit"><i class="fa fa-dashboard"></i> 控制台</a></li>
</ol>
<ol class="breadcrumb pull-right">
<li><a href="javascript:;" data-url="/admin.php/arbitral_cases/arbitral_cases">案件列表</a></li>
</ol>
</div>
<!-- END RIBBON -->
<div class="content">
<div class="panel panel-default panel-intro">
<div class="panel-heading">
<ul class="nav nav-tabs" data-field="status">
<li class="active"><a href="#t-all" data-value="" data-toggle="tab">全部</a></li>
<li><a href="#t--1" data-value="-1" data-toggle="tab">
已撤销
</a></li>
<li><a href="#t-0" data-value="0" data-toggle="tab">
待财务审核
</a></li>
<li><a href="#t-1" data-value="1" data-toggle="tab">
待秘书审核
</a></li>
<li><a href="#t-2" data-value="2" data-toggle="tab">
待答辩
</a></li>
<li><a href="#t-3" data-value="3" data-toggle="tab">
待资方审核
</a></li>
<li><a href="#t-4" data-value="4" data-toggle="tab">
待裁决
</a></li>
<li><a href="#t-5" data-value="5" data-toggle="tab">
已裁决
</a></li>
</ul>
</div>
<div class="panel-body">
<div id="myTabContent" class="tab-content">
<div class="tab-pane fade active in" id="one">
<div class="widget-body no-padding">
<div id="toolbar" class="toolbar">
<a href="javascript:;" class="btn btn-primary btn-refresh" title="刷新" ><i class="fa fa-refresh"></i> </a>
<!--<a href="javascript:;" class="btn btn-success btn-add " title="添加" ><i class="fa fa-plus"></i> 添加</a>-->
<!--<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled " title="编辑" ><i class="fa fa-pencil"></i> 编辑</a>-->
<!--<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled " title="删除" ><i class="fa fa-trash"></i> 删除</a>-->
<!--<a href="javascript:;" class="btn btn-danger btn-import " title="导入" id="btn-import-file" data-url="ajax/upload" data-mimetype="csv,xls,xlsx" data-multiple="false"><i class="fa fa-upload"></i> 导入</a>-->
<a href="javascript:;" class="btn btn-success btn-import " title="zip 压缩包导入" id="btn-import-zip" data-url="arbitral_cases/importZip" data-mimetype="zip" data-maxsize="100M" data-multiple="false"><i class="fa fa-upload"></i> zip 压缩包导入</a>
<a href="javascript:;" class="btn btn-success btn-import " title="csv 案件导入" id="btn-import-csv" data-url="arbitral_cases/importCsv" data-mimetype="csv" data-maxsize="100M" data-multiple="false"><i class="fa fa-upload"></i> csv 案件导入</a>
<a href="arbitral_cases/download" class="btn btn-success btn-import " title="案件标准 csv 模板下载" data-url="arbitral_cases/download"><i class="fa fa-download"></i> 案件标准 csv 模板下载</a>
<!--<a href="javascript:;" class="btn btn-success btn-case-submit btn-disabled disabled " title="案件批量提交" >案件批量提交</a>-->
<!--<div class="dropdown btn-group ">-->
<!--<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> 更多</a>-->
<!--<ul class="dropdown-menu text-left" role="menu">-->
<!--<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> 设为正常</a></li>-->
<!--<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> 设为隐藏</a></li>-->
<!--</ul>-->
<!--</div>-->
</div>
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
data-operate-edit="1"
data-operate-del="1"
width="100%">
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="/assets/js/require.js" data-main="/assets/js/require-backend.js?v=1645783983"></script>
</body>
<div style="bottom: 0;text-align: center;width: 100%;line-height: 50px;">
本系统通过ISO27001信息安全管理体系认证 ©Copyright ©2018-2020
<a style="margin-left:10px;color:#20a53a;" href="https://beian.miit.gov.cn/#/Integrated/recordQuery" target="_blank">粤ICP备19100653号</a>
</div>
</html>
Process finished with exit code 0
这个请求数据的接口地址,返回的参数类型为json数据包。如下图
正常返回的参数应该如下。
你为什么认为它会返回json呢?
http://admin.prod.sinacourt.com/admin.php/arbitral_cases/index 这个看上去不像个接口,因为直接用浏览器打开就是个网页,你请求它当然也是返回网页代码了