1. 程式人生 > >【程式碼】第9章 代理的使用

【程式碼】第9章 代理的使用

9.1 代理的設定

# urllib設定 HTTP 代理
"""
from urllib.error import URLError
from urllib.request import ProxyHandler, build_opener

# IP/PORT: http://www.xicidaili.com/
proxy = '116.30.221.18:53471'
proxy_handler = ProxyHandler({
    'http': 'http://' + proxy,
    'https': 'https://' + proxy
})
# 設定代理
opener = build_opener(proxy_handler)
try:
    resp = opener.open('http://httpbin.org/get')
    print(resp.read().decode('utf-8'))
except URLError as e:
    print(e.reason)
# requests設定SOCKS5 全域性代理
import socket
import socks
import requests
from requests.exceptions import ConnectionError

# IP/PORT: http://31f.cn/socks5-proxy/
socks.set_default_proxy(socks.SOCKS5, '36.7.172.12', 1080)
socket.socket = socks.socksocket
try:
    resp = requests.get('http://httpbin.org/get')
    print(resp.text)
except ConnectionError as e:
    print('error: ', e.args)
# Chrome 用selenium設定 HTTP 代理
from selenium import webdriver
proxy = '116.30.221.18:53471'
chrome_opts = webdriver.ChromeOptions()
chrome_opts.add_argument('--proxy-server=http://' + proxy)
browser = webdriver.Chrome(chrome_options=chrome_opts)
browser.get('http://httpbin.org/get')