# Puppeteer

#### 什麼是Puppeteer？

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

<figure><img src="https://637457805-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbV8SoKVnOm2o3eQR4D1v%2Fuploads%2FeMXajwmIYn5yncjROjd4%2Fimage.png?alt=media&#x26;token=c449f071-e70f-4772-9d5e-239d35af6970" 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();
})();
```
