Python爬蟲實戰——反爬策略之代理IP【無憂代理】



一般情況下,我並不建議使用自己的IP來爬取網站,而是會使用代理IP。
原因很簡單:爬蟲一般都有很高的訪問頻率,當服務器監測到某個IP以過高的訪問頻率在進行訪問,它便會認為這個IP是一只“爬蟲”,進而封鎖了我們的IP。

那我們爬蟲對IP代理的要求是什么呢?

  • 1、代理IP數量較多,可以減低被封鎖的概率;
  • 2、IP生命周期較短,因為沒錢o(´^`)o。

接下來,就講一下從購買代理IP到urllib配置代理IP的全過程。


購買代理IP:

代理IP的中間商有很多,我們以無憂代理為例。
在這里插入圖片描述

  1. 這里共有4套餐,我們選擇第一個“¥10”套餐,進入詳情界面:
    在這里插入圖片描述
  2. 竟然更便宜了,只要8.5???買!
    (我真的沒拿無憂代理的廣告費......)
  3. 購買成功之后,我們點擊“創建API接口”:
    在這里插入圖片描述
  4. 獲取HTTP爬蟲代理IP的API鏈接:
    在這里插入圖片描述

配置代理IP:

  1. 我們先調用下接口試一下:
import urllib.request as ur

proxy_address = ur.urlopen('http://api.ip.data5u.com/dynamic/get.html?order=d314e5e5e19b0dfd19762f98308114ba&sep=4').read()
print(proxy_address)
  1. 由於返回結果為字節,我們還需對其進行utf-8格式轉換,以及去空格:
proxy_address = proxy_address.decode('utf-8').strip()

輸出如下:
在這里插入圖片描述

  1. 創建proxy_handler:
proxy_handler = ur.ProxyHandler(
    {
        'http': proxy_address
    }
)
  1. 新建opener對象:
proxy_opener = ur.build_opener(proxy_handler)
  1. 使用代理IP進行訪問並輸出:
request = ur.Request(url='https://edu.csdn.net/')
# open == urlreponse,只是進行了代理IP封裝
reponse = proxy_opener.open(request).read().decode('utf-8')
print(reponse)

輸出如下:
在這里插入圖片描述

全文完整代碼:

import urllib.request as ur

proxy_address = ur.urlopen('http://api.ip.data5u.com/dynamic/get.html?order=d314e5e5e19b0dfd19762f98308114ba&sep=4').read().decode('utf-8').strip()
# print(proxy_address)

# 創建proxy_handler
proxy_handler = ur.ProxyHandler(
    {
        'http': proxy_address
    }
)
# 新建opener對象
proxy_opener = ur.build_opener(proxy_handler)

request = ur.Request(url='https://edu.csdn.net/')
# open == urlreponse,只是進行了代理IP封裝
reponse = proxy_opener.open(request).read().decode('utf-8')
print(reponse)


為我心愛的女孩~~



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM