动态关联,前一个接口返回的值为后一个接口请求的参数。

# 动态关联
import requests
def test_cookies():
# 以百度为例
r_baidu=requests.get('https://www.baidu.com/')
print(r_baidu.cookies)

直接获取的cookies,似乎是这个值。这个是Request Cookies

提取text格式内容

以前程无忧为例

  • 查看响应返回的数据格式

  • 提取url

import requests
import re # 正则表达式库,python自带的库 def test_text():
# 返回响应是text格式,使用正则表达式提取其中的值,以前程无忧为例,前程无忧搜索不需要cookies,不需要headers
url_51='https://search.51job.com/list/030200,000000,0000,00,9,99,%25E8%25BD%25AF%25E4%25BB%25B6%25E6%25B5%258B%25E8%25AF%2595%25E5%25B7%25A5%25E7%25A8%258B%25E5%25B8%2588,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare='
r_51=requests.get(url=url_51) #前程无忧搜索不需要cookies,不需要headers
r_51.encoding='gb2312' # 设置编码格式,不然会乱码
# print(r_51.text)
# "广州通易科技有限公司" href="https://jobs.51job.com/all/co727220.html">广州通易科技有限公司,把url提取出来
url_ty=re.findall('title="广州通易科技有限公司" href="(.+?)">广州通易科技有限公司',r_51.text)
print(url_ty[0])
# 访问新的url
r_ty=requests.get(url=url_ty[0]) # 提取出来的是列表,所以取第一个
r_ty.encoding='gb2312'
print(r_ty.text)
# requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None))

提取json格式内容

12306返回的是json格式





数据格式如下:

{
'httpstatus': 200,
'data': {
'result': [
's4sLFAcknK5jD%2BrgTZBK6e7uBDnnFb3kFf8TEdd4ymHqB9ALpkIhhQAOdBTn6CqjSZtYieC4EdvG%0AK0y2zs41g%2FUx7rGtYSPAGaZeFY4oFT45Yb19QFmPPh3V8KEJ4XFh%2BfHh0enliUyR%2FnpVmUxbFOOt%0AZk%2BH3Q1woKPMd2kmKhbZQ%2BqlPAlQWAg03V33gu0gAdEHi%2FKqZbgLvppiSWaBRuyaW5xG%2BvunJMIi%0AlgHrz0vN6YBEMhaO7Qizh7vJGEHev5Iyxm2vEYFNOeEKdoxccy56RTy4pKkOZIgSoWcAPqaaisJq%0AUf55bNGKi8YIzr6X2QRIkQ%3D%3D|预订|240000Z2010P|Z201|BXP|SEQ|BXP|GZQ|17:54|15:34|21:40|Y|nQ38pzGnOgKwK5MM0XYLESzjyjuRvEUBnpuJ6jrQmT4S5rq1EnMZV%2FAHhARQLS0xMLnYuF3fbGQ%3D|20200627|3|P2|01|09|1|0||16||有|||无||有|无|||||30604010W0|36411|0|1||30426000216138300016407500002110251000001025103000||||||1|'
],
'flag': '1',
'map': {
'BXP': '北京西',
'GZQ': '广州'
}
},
'messages': '',
'status': True
}
import requests
# 以12306为例
def test_json():
url_12306='https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2020-06-27&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=GZQ&purpose_codes=ADULT'
headers={'Cookie': 'JSESSIONID=84073130E457BB033010951BC41B3625; _jc_save_toStation=%u5E7F%u5DDE%2CGZQ; _jc_save_wfdc_flag=dc; BIGipServerotn=1373176074.24610.0000; RAIL_EXPIRATION=1593576175962; RAIL_DEVICEID=PbasnpR7ZB2Xcn9qUnd7wNs2_SVXfMI4i5jkkwMKc9BZi1gUKxv7l2uVortBg0YoV8db3y9eOoQx8m7JX1lO1lKwdkOjAS-b5je341esn7o7ct1GPA1WWVshf_Z4kzUi_Ns6JXJc-yyxBq3GYBurzp4HiFl8P7hR; BIGipServerpassport=937951498.50215.0000; route=c5c62a339e7744272a54643b3be5bf64; _jc_save_fromStation=%u5317%u4EAC%2CBJP; _jc_save_fromDate=2020-06-27; _jc_save_toDate=2020-06-27'}
r_12306=requests.get(url=url_12306,headers=headers)
print(r_12306.json())
print(r_12306.json()['httpstatus'])
print(r_12306.json()['data']['map'])
print(r_12306.json()['data']['map']['BXP'])
origin=r_12306.json()['data']['map']['BXP']

requests接口自动化-动态关联text/html格式的更多相关文章

  1. python+requests接口自动化框架

    为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...

  2. python接口自动化 -参数关联(一)

    原文地址https://www.cnblogs.com/yoyoketang/p/6886610.html 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址ht ...

  3. requests接口自动化9-共享session和传递cookie

    前言: session:用requests.session()创建会话,可以将会话信息传递给其他接口 cookie:用RequestsCookieJar或者cookie字典传递cookie信息 fil ...

  4. requests接口自动化-pytest框架

    pytest框架规则 测试文件以test_开头或者以_test结尾 测试类以Test开头,并且不能带有init方法 测试函数以test_开头 断言使用assert pytest框架运行用例 运行单个文 ...

  5. python+requests接口自动化完整项目设计源码

    前言 有很多小伙伴吵着要完整的项目源码,完整的项目属于公司内部的代码,这个是没法分享的,违反职业道德了,就算别人分享了,也只适用于本公司内部的业务. 所以用例的代码还是得自己去一个个写,我只能分享项目 ...

  6. python+requests接口自动化完整项目设计源码(一)

    原文地址https://www.cnblogs.com/yoyoketang/tag/python接口自动化/ 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址 ...

  7. requests接口自动化6-Body里json格式数据形式的post请求:json

    Body里json格式数据形式的post请求:用json传参 fiddler里请求响应内容: 传递的json数据 [{"stepId":"0","ca ...

  8. requests接口自动化5-表单参数形式的post请求:data

    post请求相对于get请求多一个body部分,body部分常见的数据类型有以下四种(注意是常见的,并不是只有4种) application/x-www-form-urlencoded(表单形式) a ...

  9. requests接口自动化3-url里带参数的get请求:params

    url里带参数的get请求:用params传参 #2.带参数的get请求,把参数写成字典格式,用params传参 para2={"type":"math"} r ...

随机推荐

  1. 六种方式,教你在SpringBoot初始化时搞点事情!

    前言 在实际工作中总是需要在项目启动时做一些初始化的操作,比如初始化线程池.提前加载好加密证书....... 那么经典问题来了,这也是面试官经常会问到的一个问题:有哪些手段在Spring Boot 项 ...

  2. 01-ADB命令获取包名、界面名

    命令代码 adb shell dumpsys window |findstr mFocusedApp

  3. SQL 练习12

    查询和" 01 "号的同学学习的课程 完全相同的其他同学的信息 分析 如果某同学学的某一个课程和01同学所学的课程有对应,那么子查询返回false. 如果没有对应,子查询返回tru ...

  4. 8.23考试总结(NOIP模拟46)[数数·数树·鼠树·ckw的树]

    T1 数数 解题思路 大概是一个签到题的感觉...(但是 pyt 并没有签上) 第一题当然可以找规律,但是咱们还是老老实实搞正解吧... 先从小到大拍个序,这样可以保证 \(a_l<a_r\) ...

  5. Sadmin:打造私有Django公共库实现代码复用

    我们借助于Django开发了许多的内部管理系统,例如之前介绍过的Probius.Kerrigan.Proxy等等,这些系统看起来长的都一样,但实际实现的功能确是千差万别,这些不同的系统为什么会长的一样 ...

  6. asp.net core 搭建WebAPI微服务-----cosnul服务

    参考网址:https://blog.csdn.net/weixin_42084199/article/details/108643555 在此之前需要准备的是: vs2019,以往版本不支持dotne ...

  7. 【RPC】远程接口调用实例 的几种方式比较

    pring中,用JMS搞RPC时会用到: org.springframework.jms.remoting.JmsInvokerServiceExporter org.springframework. ...

  8. nodejs根据word模板生成文档(方法二)

    [推荐该方法,模板比较简洁] 1,代码, 这里采用的模块为 docxtemplater 和 open-docxtemplater-image-module,均为开源(docxtemplater 有收费 ...

  9. 30 道 Vue 面试题,内含详细讲解(涵盖入门到精通,自测 Vue 掌握程度)

    前言 本文以前端面试官的角度出发,对 Vue 框架中一些重要的特性.框架的原理以问题的形式进行整理汇总,意在帮助作者及读者自测下 Vue 掌握的程度.本文章节结构以从易到难进行组织,建议读者按章节顺序 ...

  10. VS2017 提示找不到某个.dll库,或某个dll库丢失,原因

    可能因为那个dll的确不存在 可能因为需要在环境变量->系统环境变量->添加该dll所在目录