Maison > développement back-end > Tutoriel Python > Explication détaillée de la façon de définir l'adresse IP du proxy dans Selenium

Explication détaillée de la façon de définir l'adresse IP du proxy dans Selenium

高洛峰
Libérer: 2017-03-26 16:43:51
original
7773 Les gens l'ont consulté

Définir l'adresse IP du proxy dans Firefox

method_1

from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.http', '127.0.0.1')
profile.set_preference('network.proxy.http_port', 17890)  # int
profile.update_preferences()
driver = webdriver.Firefox(firefox_profile=profile)
driver.get('http://httpbin.org/ip')
Copier après la connexion

method_2

from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy
from selenium.webdriver.common.proxy import ProxyType
proxy = Proxy(
    {
        # 'proxyType': ProxyType.MANUAL,  # 用不用都行
        'httpProxy': get_proxy_ip_port()
    }
)
driver = webdriver.Firefox(proxy=proxy)
driver.get('http://httpbin.org/ip')
Copier après la connexion

phantomjsDéfinir l'adresse IP du proxy

Première méthode : trop inélégante (Regardons la deuxième méthode)

Dans phantomjs, vous ne pouvez pas passer en proxy comme la méthode 2 de Firefox ci-dessus
Phantomjs et FirefoxHériter Depuis WebDriver, la classe parent WebDriver peut passer en proxy
phantomjs ne quitte pas le paramètre proxy lors de l'initialisation de WebDriver
Vous pouvez donc modifier le code source de la classe phantomjs comme indiqué ci-dessous, et vous pouvez transmettre le paramètre proxy dans phantomjs

# 注意授权
# Licensed to the Software Freedom Conservancy (SFC) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The SFC licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
Copier après la connexion

Explication détaillée de la façon de définir ladresse IP du proxy dans Selenium

Ce qui suit est un exemple
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy
from selenium.webdriver.common.proxy import ProxyType
proxy = Proxy(
    {
        'proxyType': ProxyType.MANUAL,
        'httpProxy': get_proxy_ip_port()
    }
)
driver = webdriver.PhantomJS(
    executable_path="/path/of/phantomjs",
    proxy=proxy
    )
driver.get('http://httpbin.org/ip')
print driver.page_source
driver.close()
Copier après la connexion
Méthode 2 :
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy
from selenium.webdriver.common.proxy import ProxyType
proxy = Proxy(
    {
        'proxyType': ProxyType.MANUAL,
        'httpProxy': 'ip:port'  # 代理ip和端口
    }
)
# 新建一个“期望技能”,哈哈
desired_capabilities = DesiredCapabilities.PHANTOMJS.copy()
# 把代理ip加入到技能中
proxy.add_to_capabilities(desired_capabilities)
driver = webdriver.PhantomJS(
    executable_path="/path/of/phantomjs",
    desired_capabilities=desired_capabilities
    )
driver.get('http://httpbin.org/ip')
print driver.page_source
driver.close()
Copier après la connexion
Méthode 3 (Changer dynamiquement d'IP) :
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy
from selenium.webdriver.common.proxy import ProxyType
proxy = Proxy(
    {
        'proxyType': ProxyType.MANUAL,
        'httpProxy': 'ip:port'  # 代理ip和端口
    }
)
# 新建一个“期望技能”,哈哈
desired_capabilities = DesiredCapabilities.PHANTOMJS.copy()
# 把代理ip加入到技能中
proxy.add_to_capabilities(desired_capabilities)
driver = webdriver.PhantomJS(
    executable_path="/path/of/phantomjs",
    desired_capabilities=desired_capabilities
)
# 测试一下
driver.get('http://httpbin.org/ip')
print driver.page_source
# 现在开始切换ip
# 再新建一个ip
proxy = Proxy(
    {
        'proxyType': ProxyType.MANUAL,
        'httpProxy': 'ip:port'  # 代理ip和端口
    }
)
# 再新建一个“期望技能”,()
desired_capabilities = DesiredCapabilities.PHANTOMJS.copy()
# 把代理ip加入到技能中
proxy.add_to_capabilities(desired_capabilities)
# 新建一个会话,并把技能传入
driver.start_session(desired_capabilities)
driver.get('http://httpbin.org/ip')
print driver.page_source
driver.close()
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal