Python代理的使用
阿新 • • 發佈:2018-12-19
我們在做爬蟲的過程中經常會遇到這樣的情況:最初爬蟲正常執行,正常抓取資料,一切看起來都是那麼的美好,然而一杯茶的功夫可能就會出現錯誤,比如403 Forbidden;出現這樣的原因往往是網站採取了一些反爬蟲的措施,比如,伺服器會檢測某個IP在單位時間內的請求次數,如果超過了某個閾值,那麼伺服器會直接拒絕服務,返回一些錯誤資訊。這時候,代理就派上用場了。
國內的免費代理網站:
接下來看如何設定代理:
urllib代理設定:
from urllib.error import URLError
from urllib.request import ProxyHandler,build_opener
proxy='123.58.10.36:8080' #使用本地代理
#proxy='username: [email protected]:8080' #購買代理
proxy_handler=ProxyHandler({
'http':'http://'+proxy,
'https':'https://'+proxy
})
opener=build_opener(proxy_handler)
try:
response=opener.open('http://httpbin.org/get') #測試ip的網址
print(response.read().decode('utf-8'))
except URLError as e:
print(e.reason)
執行結果如下:
requests代理設定:
import requests proxy='123.58.10.36:8080' #本地代理 #proxy='username:[email protected]:8080' proxies={ 'http':'http://'+proxy, 'https':'https://'+proxy } try: response=requests.get('http://httpbin.org/get',proxies=proxies) print(response.text) except requests.exceptions.ConnectionError as e: print('錯誤:',e.args)
執行結果如下:
Selenium代理設定:
from selenium import webdriver
proxy='123.58.10.36:8080'
chrome_options=webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=http://'+proxy)
browser=webdriver.Chrome(chrome_options=chrome_options)
browser.get('http://httpbin.org/get')
執行結果:
以上就是代理的一些簡單設定、、、