セレンおよびプロキシ設定の認証機関を設定します

Mフラッタ機関、政府機関、グローバルブランドをリードする10年近くフォワーディング業界を中心に、オープン、親密な、排他的なエージェント、および無料トライアルを提供

Mフラッタ機関の公式サイトします。https://proxy.mimvp.com

 

この記事の例としては、特別に開発されたコンビネーションメータフラッタエージェントプライベート、排他的な、オープンプロキシ、の一例であり、

HTTP、HTTPSパスワード、ホワイトリストIP、パスワード認証の3種類をサポートしていません

 

たとえば、プラグインを使用してくださいXPIメートル代理店の公式サイト、または米フラッタの公式githubのダウンロードをフラッター

本論文では、直接特定のコメントを参照して、厳密に検証され、完全なコードを与えます

 

本論文では、動作環境の例:

MacBook ProのMacOSのハイシエラバージョン10.13.4

Google Chromeのバージョン63.0.3239.84(公式ビルド)(64ビット)

Pythonの2.7.13(v2.7.13:a06454b1afa1、2016年12月17日、午前12時39分47秒) 

$ピップリスト| grepのセレン
セレン(3.4.2)

 

chromedriverダウンロードします。http://chromedriver.storage.googleapis.com/index.html

 

Pythonの+セレン+クローム

エラーメッセージ:WebDriverException:「chromedriver」実行可能ファイルがPATHにあることが必要です

ソリューション:

。ChromeDriverをダウンロードして、他のブラウザは、公式サイトの説明を参照してください

B。Google Chromeのプログラムディレクトリにchromedriveファイルをコピー、または環境変数にコピーします

CP chromedriveは/ usr / local / binに/

各オペレーティング・システム・ロケーション・パスは、公式のWikiを参照することができます

あなたはPythonコードwebdriverをオブジェクトを作成Chromedrive転送パス

例1:MacOSの+クローム環境

chromedriver = "/アプリケーション/ GoogleのChrome.app/Contents/MacOS/chromedriver"

ブラウザ= webdriver.Chrome(executable_path = chromedriver)#オープンChromeブラウザ

browser.get(URL)    

コンテンツ= browser.page_source

印刷( "内​​容:" + strの(コンテンツ))

 

例2:MacOSの+環境変数

def spider_url_chrome(url):

    browser = None

    display = None

    try:

        display = Display(visible=0, size=(800, 600))

        display.start()

        chromedriver = '/usr/local/bin/chromedriver'

        browser = webdriver.Chrome(executable_path=chromedriver)        # 打开 Chrome 浏览器

        browser.get(url)    

        content = browser.page_source

        print("content: " + str(content))

    finally:

        if browser: browser.quit()

        if display: display.stop()

 

セレン+ chromedriverエージェント、またはパスワードなしでは、IPホワイトリストを設定されています

## webdriver + chrome + proxy + whiteip (无密码,或白名单ip授权)

## 米扑代理:https://proxy.mimvp.com

def spider_url_chrome_by_whiteip(url):

    browser = None

    display = None

     

    ## 白名单ip,请见米扑代理会员中心: https://proxy.mimvp.com/usercenter/userinfo.php?p=whiteip

    mimvp_proxy = {

                    'ip'            : '140.143.62.84',      # ip

                    'port_https'    : 62288,                # http, https

                    'port_socks'    : 62287,                # socks5

                    'username'      : 'mimvp-user',

                    'password'      : 'mimvp-pass'

                  }

     

    try:

        display = Display(visible=0, size=(800, 600))

        display.start()

         

        chrome_options = Options()                      # ok

        chrome_options = webdriver.ChromeOptions()      # ok

        proxy_https_argument = '--proxy-server=http://{ip}:{port}'.format(ip=mimvp_proxy['ip'], port=mimvp_proxy['port_https'])     # http, https (无密码,或白名单ip授权,成功)

        chrome_options.add_argument(proxy_https_argument)

#         proxy_socks_argument = '--proxy-server=socks5://{ip}:{port}'.format(ip=mimvp_proxy['ip'], port=mimvp_proxy['port_socks'])   # socks5 (无密码,或白名单ip授权,失败)

#         chrome_options.add_argument(proxy_socks_argument)

         

        chromedriver = '/usr/local/bin/chromedriver'

        browser = webdriver.Chrome(executable_path=chromedriver, chrome_options=chrome_options)        # 打开 Chrome 浏览器

        browser.get(url)    

        content = browser.page_source

        print("content: " + str(content))

    finally:

        if browser: browser.quit()

        if display: display.stop()

 

 

セレン+エージェントをchromedriver、およびHTTP、HTTPSアカウントのパスワードをサポート

この例は、ユーザ名とパスワードを使用して、米バッシングのエージェントを認可しました

ユーザー名パスワード認証、してくださいメートルフラッタ機関を取得 - 人 - ホワイトリストIP

1、proxy.zipにパッケージ化、以下の2つのファイルのbackground.jsとmanifest.jsonをが含まれているzipパッケージを作成します

1)background.js

var config = {

    mode: "fixed_servers",

    rules: {

      singleProxy: {

        scheme: "http",

        host: "140.143.62.84",

        port: 19480

      },

      bypassList: ["mimvp.com"]

    }

  };



chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});



function callbackFn(details) {

    return {

        authCredentials: {

            username: "mimvp-user",

            password: "mimvp-pass"

        }

    };

}



chrome.webRequest.onAuthRequired.addListener(

        callbackFn,

        {urls: ["<all_urls>"]},

        ['blocking']

);</all_urls>

注:上記の構成、代理店は、IPする必要がある、ポート、ユーザー名、パスワードはメートルフラッタープロキシIPを置き換える:ポート、許可されたユーザ名とパスワード

 

2)manifest.jsonを

{"version": "1.0.0",

    "manifest_version": 2,

    "name": "Chrome Proxy",

    "permissions": [

        "proxy",

        "tabs",

        "unlimitedStorage",

        "storage",

        "<all_urls>",

        "webRequest",

        "webRequestBlocking"

    ],

    "background": {

        "scripts": ["background.js"]

    },

    "minimum_chrome_version":"22.0.0"

}

注意:上記の設定、変更なしに、直接コピーを使用するには

 

図2は、クロムのプラグインとして追加proxy.zip

#!/usr/bin/env python

# -*- coding:utf-8 -*-



from selenium import webdriver

from selenium.webdriver.common.proxy import *

from selenium.webdriver.chrome.options import Options

from pyvirtualdisplay import Display

# from xvfbwrapper import Xvfb





def spider_url_chrome_by_https(url):

    browser = None

    display = None

    try:

        display = Display(visible=0, size=(800, 600))

        display.start()

         

        chrome_options = Options()

        chrome_options.add_extension("proxy.zip")

         

        chromedriver = '/usr/local/bin/chromedriver'

        browser = webdriver.Chrome(executable_path=chromedriver, chrome_options=chrome_options)        # 打开 Chrome 浏览器

        browser.get(url)    

        content = browser.page_source

        print("content: " + str(content))

    finally:

        if browser: browser.quit()

        if display: display.stop()





if __name__ == '__main__':

    url = 'https://ip.cn'

    url = 'https://mimvp.com/'

    url = 'https://proxy.mimvp.com/ip.php'



    # http, https 密码授权,成功

    spider_url_chrome_by_https(url)



3、运行效果,验证成功

content: <html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>140.143.62.84</body></html>

 

転載リンク:  https://blog.csdn.net/ithomer/article/details/81091337

おすすめ

転載: blog.csdn.net/chang995196962/article/details/91365585