提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
Pyppeteer 是一个 Python 库,它是 Puppeteer 的 Python 版本,用于控制无头浏览器(如 Chromium 或 Chrome)。它主要用于自动化浏览器任务,如抓取网页、自动化表单提交、截图、生成 PDF 等等。
AdsPower 是一款用于多账号管理的浏览器模拟工具,特别适用于社交媒体营销、广告投放、以及电商平台等需要大量账户操作的场景。AdsPower 通过提供虚拟的浏览器实例,可以帮助用户同时操作多个账户而不被平台检测到,广泛应用于广告代理、社交媒体管理、网店运营等领域。
这里想要自动化操作adspower开的浏览器,应该如何实现呢
一、adspower配置及启动
1、在指纹配置中,在启动参数中要添加下面代码,开启浏览器远程调试,调整端口为合适的端口号。
--remote-debugging-port=9222
2、接下来启动AdsPower浏览器,这时会在桌面上开一个网页窗口,显示你的指纹信息。
二、pypeeteer链接到启动的网页窗口
1.引入库
由于 Pyppeteer 是异步操作的,通常需要配合 asyncio 使用。因为我们要链接到已有的浏览器,所以导入connect模块,而不是launch模块。
import asyncio
from pyppeteer import connect
2.代码示例
async def main():
browser = await connect({
# 替换为实际的 WebSocket 地址
'browserWSEndpoint': 'ws://localhost:9222/devtools/browser/fa88ab21-8a00-4de2-af31-d8fefb6f4f8d',
})
page = await browser.newPage() # 创建新页面
await page.goto(url) # 你的网页URL
#......你的后续代码
await browser.close() # 关闭浏览器
# 执行异步任务
asyncio.get_event_loop().run_until_complete(main())
三、ws地址如何获取
1.AdsPower官方提供了api接口,你可以通过接口来获取,需要执行如下代码
import requests
def get_ws():
# 替换成你实际的user_id
user_id = '***'
url_create = f'http://localhost:50325/api/v1/browser/start?user_id={user_id}'
res = requests.get(url=url_create)
if res.status_code == 200:
print(res.text)
else:
print(res.status_code)
get_ws()
你的user_id可以在这里查看。
这样当你运行这个代码后,会得到
{"code":0,"msg":"success","data":{"ws":{"puppeteer":"ws://127.0.0.1:9555/devtools/browser/f365d6cb-58e8-462e-8db3-f369ad055e68","selenium":"127.0.0.1:9555"},"debug_port":"9555","webdriver":"C:\\Users\\demon\\AppData\\Roaming\\adspower_global\\cwd_global\\chrome_131\\chromedriver.exe"}}
这里puppeteer后面的即为ws地址,将这个地址替换即可。
2.你还可以通过AdsPower打开的网页获取,在里面新建一个网页,然后输入这个URL(需要将端口号修改为你开启调试的端口号)
http://localhost:9222/json/version
通过这个方式,你也可以获取到该网页的websocket地址。
注意
一旦网页关闭或者重新打开,它的websocket地址会发生变化,因此如果还想操作的话,需要重新获取一下ws地址。