小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python爬蟲系列,Python爬蟲代理設置方法

 豫龍晏子ylyz 2019-02-09

HTTP代理

獲取代理IP

首先需要獲取一個可用代理IP和端口,可以從以下網(wǎng)站獲取IP:

Python爬蟲系列,Python爬蟲代理設置方法

西刺:https://www.快代理:https://www./free站大爺:http://ip./dayProxy.html

當然,你也可以從其他網(wǎng)站購買更穩(wěn)定的代理IP。

  • Urllib

從上述網(wǎng)站獲取代理IP, 這里我獲取到IP:116.209.59.41,端口:9999

我們從基礎的 Urllib 開始學習,來看一下代理的設置方法:

from urllib.error import URLError

from urllib.request import ProxyHandler, build_opener

def http_proxy(ip, port):

proxy = ip + ':' + port

proxy_handler = ProxyHandler({

'http': 'https://' + proxy,

'https': 'https://' + proxy

})

opener = build_opener(proxy_handler)

return opener

if __name__ == '__main__':

opener = http_proxy('116.209.59.41', '9999')

try:

response = opener.open('https:///get')

print(response.read().decode('utf-8'))

except URLError as e:

print(e.reason)

運行結(jié)果如下:

{

'args': {},

'headers': {

'Accept-Encoding': 'identity',

'Connection': 'close',

'Host': '',

'User-Agent': 'Python-urllib/3.6'

},

'origin': '116.209.59.41',

'url': 'https:///get'

}

返回結(jié)果是 Json,字段 origin標明了你現(xiàn)在的 IP。正好為代理 IP,不是真實的 IP,這樣我們就成功設置好代理,可以使用opener打開任意網(wǎng)址。

  • Requests

Requests 代理設置代碼如下:

import requests

if __name__ == '__main__':

ip = '116.209.59.41'

port = '9999'

proxy = ip + ':' + port

proxies = {

'http': 'https://' + proxy,

'https': 'https://' + proxy,

}

try:

response = requests.get('https:///get', proxies=proxies)

print(response.text)

except requests.exceptions.ConnectionError as e:

print('Error', e.args)

運行結(jié)果:

{

'args': {},

'headers': {

'Accept': '*/*',

'Accept-Encoding': 'gzip, deflate',

'Connection': 'close',

'Host': '',

'User-Agent': 'python-requests/2.18.1'

},

'origin': '106.185.45.153',

'url': 'https:///get'

}

  • Selenium

Selenium 同樣可以設置代理。

elenium 設置代理的代碼如下:

from selenium import webdriver

def get_driver_with_proxy(ip, port):

proxy = ip + ':' + port

chrome_options = webdriver.ChromeOptions()

chrome_options.add_argument('--proxy-server=https://' + proxy)

browser = webdriver.Chrome(chrome_options=chrome_options)\

return browser

if __name__ == '__main__':

browser = get_driver_with_proxy('106.185.45.153', '9999')

browser.get('https:///get')

這樣我們只需要調(diào)用browser就可以使用代理IP訪問任意網(wǎng)站了。

{

'args': {},

'headers': {

'Accept': '*/*',

'Accept-Encoding': 'gzip, deflate',

'Connection': 'close',

'Host': '',

'User-Agent': 'python-requests/2.18.1'

},

'origin': '106.185.45.153',

'url': 'https:///get'

}

可以看到代理設置成功。

  • PhantomJS

對于 PhantomJS代理設置代碼如下:

from selenium import webdriver

def get_PhantomJS_driver(ip, port):

proxy = ip + ':' + port

args = [

f'--proxy={proxy}',

'--proxy-type=http'

]

browser = webdriver.PhantomJS(service_args=args)

return browser

if __name__ == '__main__':

browser = get_PhantomJS_driver('106.185.45.153', '9999')

browser.get('https:///get')

print(browser.page_source)

通過使用 args 參數(shù)進行代理IP設置。

運行結(jié)果:

{

'args': {},

'headers': {

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

'Accept-Encoding': 'gzip, deflate',

'Accept-Language': 'zh-CN,en,*',

'Connection': 'close',

'Host': '',

'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.0 Safari/538.1'

},

'origin': '106.185.45.153',

'url': 'https:///get'

}

運行結(jié)果的 origin 同樣為代理的 IP,設置代理成功。

以上就是簡單的一個Pytho的IP代理設置方法。我們只需要結(jié)合爬蟲,爬取免費代理IP網(wǎng)站上面的IP構(gòu)建自己的IP池,便可以輕松切換IP進行各種爬蟲。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多