Puppeteer: 프록시를 사용하여 페이지 탐색

오늘 Puppeteer 주제는 프록시와 관련이 있습니다. 페이지를 탐색할 때 프록시를 사용하면 원본 액세스 위치를 숨기고 싶을 때 유용합니다. 그 이유는 단 하나입니다. 개인 정보 및 기타 사용 사례를 보호하는 데 사용할 수 있는 또 다른 이유는 지리적 제한이 있는 웹 사이트를 여는 것입니다.

위키피디아에 따르면,

In computer networks, a proxy server is a server (a computer system or an application) that acts as an intermediary for requests from clients seeking resources from other servers. A client connects to the proxy server, requesting some service, such as a file, connection, web page, or other resource available from a different server and the proxy server evaluates the request as a way to simplify and control its complexity. Proxies were invented to add structure and encapsulation to distributed systems.



Puppetter에서는 인터넷에서 페이지를 탐색할 때 프록시를 사용할 수 있습니다. SOCKS4, SOCKS5 및 HTTP 프록시와 같은 여러 프록시 샘플을 사용하겠습니다.

시작하자.

준비



꼭두각시 설치

npm i puppeteer


프록시 샘플도 필요합니다. 이를 위해 https://hidemy.name/en/proxy-list/의 무료 프록시 목록을 사용하고 거기에서 여러 프록시를 선택할 수 있습니다.

코드



우리는 캄보디아에서 SOCKS4 프록시와 이 프록시의 IP 위치를 사용할 것입니다. 프록시 IP 주소 96.9.77.192 및 포트 55796. 예제를 시도할 때 프록시 주소가 계속 작동하기를 바랍니다.

파일proxy_with_puppeteer.js
const puppeteer = require('puppeteer');

(async () => {
    // set some options (set headless to false so we can see 
    // this automated browsing experience)
    let launchOptions = { headless: false, 
                          args: ['--start-maximized',
                                 '--proxy-server=socks4://96.9.77.192:55796'] // this is where we set the proxy
                        };

    const browser = await puppeteer.launch(launchOptions);
    const page = await browser.newPage();

    // set viewport and user agent (just in case for nice viewing)
    await page.setViewport({width: 1366, height: 768});
    await page.setUserAgent('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36');

    // go to whatismycountry.com to see if proxy works (based on geography location)
    await page.goto('https://whatismycountry.com');

    // close the browser
    // await browser.close();
})();


그것을 실행

node proxy_with_puppeteer.js


웹사이트https://whatismycountry.com가 열리며 아래와 같이 표시됩니다.



좋은데, 프록시가 작동한다는 의미입니다.

SOCKS5 프록시는 어떻습니까? 간단합니다. 프록시를 설정하는 코드를 아래와 같이 변경하면 됩니다.

'--proxy-server=socks5://PROXY_IP_ADDRESS:PROXY_PORT'


HTTP 또는 HTTPS 프록시의 경우 아래와 같이 할 수 있습니다.

'--proxy-server=PROXY_IP_ADDRESS:PROXY_PORT'


프록시에 인증이 필요한 경우 이 코드를 추가하여 인증을 지원할 수 있습니다. page.goto() 부분 앞에 두십시오.

    // set the proxy credential
    await page.authenticate({'username': 'YOUR_USERNAME', 'password': 'YOUR_PASSWORD'});


그게 다야.

https://smartproxy.com , http://stormproxies.com 또는 https://luminati.io 등과 같은 저렴한 프록시 서비스를 사용하여 많은 고품질 프록시를 얻을 수 있습니다. 선택은 당신의 것입니다.

감사합니다. 즐기시기 바랍니다.

참조


  • https://en.wikipedia.org/wiki/Proxy_server
  • https://hidemy.name/en/proxy-list/
  • https://free-proxy-list.net/
  • https://pptr.dev
  • 좋은 웹페이지 즐겨찾기