Puppeteer 使用itbrowser指纹浏览器教程
itbrowser指纹浏览器支持puppeteer自动化框架,无需修改代码只需要启动浏览器后使用cdp连接浏览器即可。
本文将介绍如何使用 Puppeteer 通过 Chrome DevTools Protocol (CDP) 连接到一个已经运行的浏览器实例。我们将提供 JavaScript、Python 和 C# 三种语言的实现示例。具体怎么启动itbrowser浏览器可以看教程 调试模式启动chrome
JavaScript 实现cdp连接chrome浏览器
使用 puppeteer
或 puppeteer-core
包:
1const puppeteer = require('puppeteer-core');
2
3(async () => {
4 // 连接到已运行的浏览器
5 const browserURL = 'http://127.0.0.1:9222';
6 const browser = await puppeteer.connect({
7 browserURL,
8 defaultViewport: null
9 });
10
11 // 获取已打开的页面列表
12 const pages = await browser.pages();
13 console.log(`已找到 ${pages.length} 个打开的页面`);
14
15 // 使用第一个页面
16 const page = pages[0];
17 await page.goto('https://example.com');
18 console.log(await page.title());
19
20 // 或者打开新页面
21 const newPage = await browser.newPage();
22 await newPage.goto('https://google.com');
23 console.log(await newPage.title());
24
25 // 断开连接(不会关闭浏览器)
26 await browser.disconnect();
27})();
Python 实现cdp连接chrome浏览器
使用 pyppeteer
包:
1import asyncio
2from pyppeteer import connect
3
4async def main():
5 # 连接到已运行的浏览器
6 browser = await connect({
7 'browserURL': 'http://127.0.0.1:9222',
8 'defaultViewport': None
9 })
10
11 # 获取已打开的页面列表
12 pages = await browser.pages()
13 print(f'已找到 {len(pages)} 个打开的页面')
14
15 # 使用第一个页面
16 page = pages[0]
17 await page.goto('https://example.com')
18 print(await page.title())
19
20 # 或者打开新页面
21 new_page = await browser.newPage()
22 await new_page.goto('https://google.com')
23 print(await new_page.title())
24
25 # 断开连接(不会关闭浏览器)
26 await browser.disconnect()
27
28asyncio.get_event_loop().run_until_complete(main())
C# 实现cdp连接chrome浏览器
使用 PuppeteerSharp
包:
1using System;
2using System.Threading.Tasks;
3using PuppeteerSharp;
4
5class Program
6{
7 public static async Task Main()
8 {
9 // 连接到已运行的浏览器
10 var options = new ConnectOptions()
11 {
12 BrowserURL = "http://127.0.0.1:9222",
13 DefaultViewport = null
14 };
15
16 var browser = await Puppeteer.ConnectAsync(options);
17
18 // 获取已打开的页面列表
19 var pages = await browser.PagesAsync();
20 Console.WriteLine($"已找到 {pages.Length} 个打开的页面");
21
22 // 使用第一个页面
23 var page = pages[0];
24 await page.GoToAsync("https://example.com");
25 Console.WriteLine(await page.GetTitleAsync());
26
27 // 或者打开新页面
28 var newPage = await browser.NewPageAsync();
29 await newPage.GoToAsync("https://google.com");
30 Console.WriteLine(await newPage.GetTitleAsync());
31
32 // 断开连接(不会关闭浏览器)
33 await browser.DisconnectAsync();
34 }
35}