91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用代理IP怎么實現一個Python爬蟲

發布時間:2021-03-23 15:59:21 來源:億速云 閱讀:272 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關利用代理IP怎么實現一個Python爬蟲,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

獲取 IP

代理池使用 Flask 提供了獲取的接口:http://localhost:5555/random

只要訪問這個接口再返回內容就可以拿到 IP 了

Urllib

先看一下 Urllib 的代理設置方法:

from urllib.error import URLError
import urllib.request
from urllib.request import ProxyHandler, build_opener

# 獲取IP
ip_response = urllib.request.urlopen("http://localhost:5555/random")
ip = ip_response.read().decode('utf-8')

proxy_handler = ProxyHandler({
  'http': 'http://' + ip,
  'https': 'https://' + ip
})
opener = build_opener(proxy_handler)
try:
  response = opener.open('http://httpbin.org/get')
  print(response.read().decode('utf-8'))
except URLError as e:
  print(e.reason)

運行結果:

{
 "args": {},
 "headers": {
  "Accept-Encoding": "identity",
  "Host": "httpbin.org",
  "User-Agent": "Python-urllib/3.7"
 },
 "origin": "108.61.201.231, 108.61.201.231",
 "url": "https://httpbin.org/get"
}

Urllib 使用 ProxyHandler 設置代理,參數是字典類型,鍵名為協議類型,鍵值是代理,代理前面需要加上協議,即 http 或 https,當請求的鏈接是 http 協議的時候,它會調用 http 代理,當請求的鏈接是 https 協議的時候,它會調用https代理,所以此處生效的代理是:http://108.61.201.231 和 https://108.61.201.231

ProxyHandler 對象創建之后,再利用 build_opener() 方法傳入該對象來創建一個 Opener,這樣就相當于此 Opener 已經設置好代理了,直接調用它的 open() 方法即可使用此代理訪問鏈接

Requests

Requests 的代理設置只需要傳入 proxies 參數:

import requests

# 獲取IP
ip_response = requests.get("http://localhost:5555/random")
ip = ip_response.text

proxies = {
  'http': 'http://' + ip,
  'https': 'https://' + ip,
}
try:
  response = requests.get('http://httpbin.org/get', proxies=proxies)
  print(response.text)
except requests.exceptions.ConnectionError as e:
  print('Error', e.args)

運行結果:

{
 "args": {},
 "headers": {
  "Accept": "*/*",
  "Accept-Encoding": "gzip, deflate",
  "Host": "httpbin.org",
  "User-Agent": "python-requests/2.21.0"
 },
 "origin": "47.90.28.54, 47.90.28.54",
 "url": "https://httpbin.org/get"
}

Requests 只需要構造代理字典然后通過 proxies 參數即可設置代理,比較簡單

Selenium

import requests
from selenium import webdriver
import time

# 借助requests庫獲取IP
ip_response = requests.get("http://localhost:5555/random")
ip = ip_response.text

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=http://' + ip)
browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get('http://httpbin.org/get')
time.sleep(5)

運行結果:

利用代理IP怎么實現一個Python爬蟲

看完上述內容,你們對利用代理IP怎么實現一個Python爬蟲有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安达市| 宁陵县| 简阳市| 安远县| 宜宾县| 从江县| 万宁市| 化德县| 河北区| 邵阳县| 东宁县| 礼泉县| 额尔古纳市| 会宁县| 江北区| 裕民县| 庆安县| 大悟县| 临潭县| 葫芦岛市| 九寨沟县| 灵丘县| 建平县| 淳安县| 龙江县| 安图县| 张北县| 务川| 五华县| 阿合奇县| 万山特区| 四川省| 永春县| 赤城县| 宜君县| 遵义县| 和林格尔县| 延庆县| 定安县| 长治市| 钟祥市|