pyppeteer 执行js函数调用ajax post传入参数并获取返回值

在Pyppeteer中,你可以使用page.evaluate()方法来执行JavaScript函数,并且可以传递参数给这个函数。如果你需要执行一个调用AJAX POST请求的函数并且传入参数,同时需要获取返回值,可以使用以下方法:

python 复制代码
import asyncio
from pyppeteer import launch
 
async def run():
    browser = await launch()
    page = await browser.newPage()
    
    # 定义你的JavaScript函数,它会发起一个POST请求
    # 这里假设你使用的是一个公共的API或者你自己的服务器端点
    # 请确保你的服务器能接收POST请求并返回JSON响应
    postFunction = """(data) => {
        // 这里使用fetch API发起POST请求
        return fetch('https://your-api-endpoint.com/post', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
            body: JSON.stringify(data)
        }).then(response => response.json())
    };"""
 
    # 传递参数给JavaScript函数
    data = {'key': 'value'}
 
    # 执行JavaScript函数并传递参数,等待结果
    result = await page.evaluate(postFunction, data)
    
    # 打印返回的结果
    print(result)
    
    await browser.close()
 
asyncio.get_event_loop().run_until_complete(run())

确保替换https://your-api-endpoint.com/post为你实际想要发送POST请求的URL。这段代码会启动一个新的浏览器页面,执行定义好的JavaScript函数,并且传递Python中的data变量给它。JavaScript函数会发起一个POST请求,并且返回一个Promise,最终通过page.evaluate()在Python中得到返回值。

注意,如果返回值是String,那么response.json()修改为response.text()即可

相关推荐
INS_KF16 分钟前
【编程笔记】成员函数中两个 const 的区别(const Data &getData() const;)
前端·javascript·笔记
淡海水19 分钟前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
2601_962100541 小时前
python包和模块的内容整理
python·模块·导入·虚拟环境·
宿6741 小时前
vue3-async
前端·javascript·vue.js
CS_Zero1 小时前
C语言sizeof是函数吗?
c语言·开发语言
二进制漫游记1 小时前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding
-今昭-2 小时前
《V2V 迁移实战:将 VMware 虚拟机转为 OpenStack 可用 Glance qcow2 镜像》
开发语言·python
excel2 小时前
Nuxt + Twin CSS 中宽度超过屏幕时底部出现空白的原因与解决方案
前端·javascript
2601_962381582 小时前
【转】Python渗透测试工具:sqlmap
python·渗透测试·sql注入·sqlmap·数据库安全
用户3721574261353 小时前
如何使用 Python 从 Word 文档中提取图片
python