Python3 웹 크롤러 : 셀레늄 크롬 구성 파이썬 방법의 프록시 버전

파이썬 프록시 구성 방법이 문서를 소개 셀레늄 크롬 버전은 샤오 총통은 공유에 모두를 위해 지금은 매우 좋은 느낌뿐만 아니라 참조가 될 수 있습니다. 팔로우 Xiaobian는 올 함께 볼 수
환경 : 윈도우 7 + 파이썬 3.5.2 + 셀레늄 3.4.2 + 크롬 드라이버 2.29 + 크롬 58.0.3029.110 (64 비트)

파이어 폭스의 프록시 구성에 셀레늄 관계자는 구성하는 방법을 통보하지 않았다 크롬 셀레늄 당국에 대한 적절한 구성을 보지 못했다, 적용되지 않지만, 두 가지 효과가있다 :

  1. 연결없이 사용자 이름 암호 인증 프록시
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument('--proxy-server=http://ip:port') 
driver = webdriver.Chrome(chrome_options=chromeOptions)
  1. 연결 사용자 이름 및 암호
from selenium import webdriverdef create_proxyauth_extension(proxy_host, proxy_port,
                proxy_username, proxy_password,
                scheme='http', plugin_path=None):
  """Proxy Auth Extension
 
  args:
    proxy_host (str): domain or ip address, ie proxy.domain.com
    proxy_port (int): port
    proxy_username (str): auth username
    proxy_password (str): auth password
  kwargs:
    scheme (str): proxy scheme, default http
    plugin_path (str): absolute path of the extension    
 
  return str -> plugin_path
  """
  import string
  import zipfile
 
  if plugin_path is None:
    plugin_path = 'd:/webdriver/vimm_chrome_proxyauth_plugin.zip'
 
  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"
  }
  """
 
  background_js = string.Template(
  """
  var config = {
      mode: "fixed_servers",
      rules: {
       singleProxy: {
        scheme: "${scheme}",
        host: "${host}",
        port: parseInt(${port})
       },
       bypassList: ["foobar.com"]
      }
     };
 
  chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});
 
  function callbackFn(details) {
    return {
      authCredentials: {
        username: "${username}",
        password: "${password}"
      }
    };
  }
 
  chrome.webRequest.onAuthRequired.addListener(
        callbackFn,
        {urls: ["<all_urls>"]},
        ['blocking']
  );
  """
  ).substitute(
    host=proxy_host,
    port=proxy_port,
    username=proxy_username,
    password=proxy_password,
    scheme=scheme,
  )
  with zipfile.ZipFile(plugin_path, 'w') as zp:
    zp.writestr("manifest.json", manifest_json)
    zp.writestr("background.js", background_js)
 
  return plugin_path
 
proxyauth_plugin_path = create_proxyauth_extension(
  proxy_host="proxy.crawlera.com",
  proxy_port=8010,
  proxy_username="fea687a8b2d448d5a5925ef1dca2ebe9",
  proxy_password=""
)
 
 
co = webdriver.ChromeOptions()
co.add_argument("--start-maximized")
co.add_extension(proxyauth_plugin_path)
 
 
driver = webdriver.Chrome(chrome_options=co)
driver.get(<a href="http://www.amazon.com/" rel="external nofollow">http://www.amazon.com/</a>)

나는 모두가 매우 넓은 파이썬 학습 자원 수집을 권장하기 위해, 당신에 기록 입력을 클릭하여 공유 경험, 연구 노트로 학습하기 전에 수석 프로그래머가,이 사업 경험의 기회이며, 모두주의 깊게 파이썬 제로 구성에 실제 프로젝트 데이터의 기초는 최신 기술에 당신에게 매일 파이썬은, 전망, 학습은 작은 세부 사항의 메시지를 남길 수 있습니다

게시 46 개 원래 기사 · 원 찬양 30 ·은 70000 +를 볼

추천

출처blog.csdn.net/haoxun09/article/details/104828272