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()即可

相关推荐
凤年徐2 分钟前
【C/C++】深入理解指针(六)
c语言·开发语言·c++·经验分享·笔记·指针
JavaEdge在掘金5 分钟前
精通 Spring AOP Execution 表达式:精准匹配你的切点
python
张开心_kx6 分钟前
面试官又问我受控组件和非受控组件?
前端·javascript·react.js
stanny7 分钟前
MCP(下)——跟着官方实现一个MCP
javascript·mcp
学了就忘11 分钟前
JavaScript 异步编程与请求取消全指南
开发语言·javascript·ecmascript
通南北15 分钟前
使用python实现自动化拉取压缩包并处理流程
开发语言·python·自动化
sevenliao17 分钟前
js 继承方式有哪几种
javascript
10年前端老司机19 分钟前
微信小程序自定义组件
前端·javascript·微信小程序
学渣6765620 分钟前
【Jupyter 启动时如何指定目录】
ide·python·jupyter
cauyyl20 分钟前
react nativeWebView跨页面通信
javascript·react native·react.js