> For the complete documentation index, see [llms.txt](https://doc.thordata.com/doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.thordata.com/doc/zh-hk/dai-li/ji-cheng-jiao-cheng/zhu-zhai-dai-li-ji-cheng/puppeteer.md).

# Puppeteer

#### 什麼是Puppeteer？

[**Puppeteer**](https://developer.chrome.com/docs/puppeteer)是一個 JavaScript 函式庫，它提供進階 API 來透過 DevTools 協定或 WebDriver BiDi 控制 Chrome 或 Firefox。 Puppeteer 預設在無頭（無可見 UI）中運行，但可以配置為在可見（「有頭」）瀏覽器中運行。

<figure><img src="/files/22P5iQjnplx5XIthYS8q" alt=""><figcaption></figcaption></figure>

下面為您介紹如何將Thordata與Puppeteer集成。

{% stepper %}
{% step %}

### 安裝Puppeteer

您必須建立 Puppeteer 項目，啟動它，然後使用 npm 和 Puppeteer 安裝 Puppeteer。

[**點擊此處**](https://pptr.dev/guides/installation)查看詳細安裝教程
{% endstep %}

{% step %}

### 在Puppeteer中填入代理值

**服務器:** `t.pr.thordata.net:9999`

**代理賬戶:** `td-customer-USERNAME`

**代理密碼:** `PASSWORD`
{% endstep %}
{% endstepper %}

**代碼示例：**

```
const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    args: ['--proxy-server=t.pr.thordata.net:9999]  
});
  const page = await browser.newPage();
    await page.authenticate({
        username: 'td-customer-USERNAME',
        password: 'PASSWORD'
    });
    await page.goto('https://ipinfo.thordata.com');
    await page.screenshot({path: 'example.png'});
    await browser.close();
})();
```
