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')
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')
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.
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()
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()
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()
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!