首页 > 编程语言 >python+playwright 学习-83 page.expect_response()捕获网络返回数据

python+playwright 学习-83 page.expect_response()捕获网络返回数据

时间:2023-10-27 12:37:39浏览次数:41  
标签:info playwright python page url expect print response

前言

expect_response()方法可以捕获接口返回的数据,在爬取网页数据时非常有用。

expect_response() 使用

官方文档示例

with page.expect_response("https://example.com/resource") as response_info:
    page.get_by_text("trigger response").click()
response = response_info.value
print(response.ok)

# or with a lambda
with page.expect_response(lambda response: response.url == "https://example.com" and response.status == 200) as response_info:
    page.get_by_text("trigger response").click()
response = response_info.value
print(response.ok)

expect_request 参数说明:
url_or_predicate : typing.Union[str, typing.Pattern[str], typing.Callable[["Request"], bool]] 请求URL字符串、正则表达式或接收Request参数的函数对象, 当通过上下文选项提供base_url并且传递的url是路径时,它将通过新的url()构造函数进行合并。
timeout: typing.Optional[float] = None 设置超时时间,默认30秒,单位毫秒, 传递0以禁用超时。可以使用page.set_default_timeout()方法更改默认值。

使用示例

示例代码

from playwright.sync_api import sync_playwright
# 上海悠悠 wx:283340479
# blog:


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("`http://127.0.0.1:8000/login.html`")
    page.locator('#username').fill('yoyo')
    page.locator('#password').fill('*********')

    with page.expect_response("*/api/login") as response_info:
        page.locator('#loginBtn').click()
    response = response_info.value
    print(response.status)
    print(response.headers)
    print(response.text())

运行结果

400
{'date': 'Fri, 22 Sep 2023 13:27:59 GMT', 'server': 'nginx/1.12.0', 'connection': 'keep-alive', 'content-length': '43', 'content-type': 'application/json'}
{"message": "用户名或密码不正确"}



标签:info,playwright,python,page,url,expect,print,response
From: https://blog.51cto.com/u_15249893/8052644

相关文章

  • python+playwright 学习-82 Request 对象
    前言每当页面发送网络资源请求时,页面都会发出以下事件序列:page.on("request")当页面发出请求时触发page.on("response")接收到请求的响应状态和标头时触发page.on("requestfinished")当响应主体被下载并且请求完成时发出。如果请求在某个时刻失败,则会发出page.on("requestfa......
  • python+playwright 学习-81 page.expect_request()捕获网络请求
    前言page.expect_request()可以捕获网页上发出去的请求,当有多个请求时,可以根据请求url,请求方式判断。expect_request官方文档示例withpage.expect_request("http://example.com/resource")asfirst:page.get_by_text("triggerrequest").click()first_request=first.val......
  • FastAPI学习-21.response 参数-设置响应Cookies
    前言可以在 路径函数 中定义一个类型为 Response的参数,这样你就可以在这个临时响应对象中设置cookie了。response参数设置cookiesfromfastapiimportFastAPI,Responseapp=FastAPI()@app.post("/cookie-and-object/")defcreate_cookie(response:Response):res......
  • FastAPI学习-20.response 参数-设置响应头部
    前言你可以在你的_路径操作函数_中声明一个Response类型的参数。设置响应头部你可以在这个_临时_响应对象中设置头部fromfastapiimportFastAPI,Responseapp=FastAPI()@app.get("/headers-and-object/")defget_headers(response:Response):response.headers["X-C......
  • FastAPI学习-19.response 参数-修改状态码
    前言假设你想默认返回一个HTTP状态码为“OK”200。但如果数据不存在,你想创建它,并返回一个HTTP状态码为“CREATED”201。但你仍然希望能够使用response_model过滤和转换你返回的数据。对于这些情况,你可以使用一个response`参数。使用 response 参数status_code设置默认状态码fr......
  • FastAPI学习-18.Response 返回 XML 格式
    前言假设你想要返回一个 XML响应。你可以把你的XML内容放到一个字符串中,放到一个 Response 中,然后返回。Response自定义返回可以把XML内容放到一个字符串中,放到一个 Response 中,设置media_type="application/xml"fromfastapiimportFastAPI,Responseapp=FastAPI......
  • FastAPI学习-14. JSONResponse 返回JSON内容
    当你创建一个 FastAPI 路径操作 时,你可以正常返回以下任意一种数据:dict,list,Pydantic模型,数据库模型等等。FastAPI 默认会使用 jsonable_encoder 将这些类型的返回值转换成JSON格式,默认情况下会以content-type:application/json格式返回在有些情况下,我们需要在路径操作......
  • docker: Error response from daemon: Conflict. The container name "/web" is alrea
    问题:docker启动docker容器时报错docker:Errorresponsefromdaemon:Conflict.ThecontainernameisalreadyinusebycontainerYouhavetoremove(orrename)thatcontainertobeabletoreusethatname.解决办法:在此之前已经启动了相同名字的docker容器,Thecontai......
  • 用Python的Pygame包做飞行棋
    最近学了下pygame,感觉非常有意思,于是用自己的理解纯手工敲了几个游戏,下面记录一下我做飞行棋的思路过程: 运行结果玩家轮流投骰子然后移动飞机,全程只用鼠标操作,右上方会提示当前的轮次及操作 基础设置1)首先是导包和初始化一些变量,定义SIZE=40表示长方形的......
  • 【视频】支持向量机算法原理和Python用户流失数据挖掘SVM实例|附代码数据
    最近我们被客户要求撰写关于用户流失数据挖掘的研究报告,包括一些图形和统计输出。即使是同一种植物,由于生长的地理环境的不同,它们的特征会有所差异。例如鸢尾花,可分为山鸢尾、杂色鸢尾、维吉尼亚鸢尾。假设此时您得到了一朵鸢尾花,如何判断它属于哪一类呢?支持向量机算法原理·其......