您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“python爬蟲http代理實例分析”,內容詳細,步驟清晰,細節處理妥當,希望這篇“python爬蟲http代理實例分析”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
1,代理類別
1,FTP代理服務器:主要用于訪問FTP服務器,一般有上傳、下載以及緩存功能,端口一般為21、2121等。
2,HTTP代理服務器:主要用于訪問網頁,一般有內容過濾和緩存功能,端口一般為80、8080、3128等。
3,SSL/TLS代理:主要用于訪問加密網站,一般有SSL或TLS加密功能(最高支持128位加密強度),端口一般為443。
4,RTSP代理:主要用于訪問Real流媒體服務器,一般有緩存功能,端口一般為554。
5,Telnet代理:主要用于telnet遠程控制(黑客入侵計算機時常用于隱藏身份),端口一般為23。
6,POP3/SMTP代理:主要用于POP3/SMTP方式收發郵件,一般有緩存功能,端口一般為110/25。
7,SOCKS代理:只是單純傳遞數據包,不關心具體協議和用法,所以速度快很多,一般有緩存功能,端口一般為1080。SOCKS代理協議又分為SOCKS4和SOCKS5,前者只支持TCP,而后者支持TCP和UDP,還支持各種身份驗證機制、服務器端域名解析等。簡單來說,SOCK4能做到的SOCKS5都可以做到,但SOCKS5能做到的SOCK4不一定能做到。
2,爬蟲代理
對于爬蟲來說,由于爬蟲爬取速度過快,在爬取過程中可能遇到同一個IP訪問過于頻繁的問題,此時網站就會讓我們輸入驗證碼登錄或者直接封鎖IP,這樣會給爬取帶來極大的不便。
使用代理隱藏真實的IP,讓服務器誤以為是代理服務器在請求自己。這樣在爬取過程中通過不斷更換代理,就不會被封鎖,可以達到很好的爬取效果。
3,什么是HTTP代理
,HTTP代理本質上是一個Web應用,它和其他普通Web應用沒有根本區別。HTTP代理收到請求后,根據Header中Host字段的主機名和Get/POST請求地址綜合判斷目標主機,建立新的HTTP請求并轉發請求數據,并將收到的響應數據轉發給客戶端。
4,python使用代理訪問服務器
python使用代理訪問服務器主要有一下3個步驟:
1.創建一個代理處理器ProxyHandler:
proxy_support = urllib.request.ProxyHandler(),ProxyHandler是一個類,其參數是一個字典:{ '類型':'代理ip:端口號'}
什么是Handler?Handler也叫作處理器,每個handlers知道如何通過特定協議打開URLs,或者如何處理URL打開時的各個方面,例如HTTP重定向或者HTTP cookies。
2.定制、創建一個opener:
opener = urllib.request.build_opener(proxy_support)
什么是opener?python在打開一個url鏈接時,就會使用opener。其實,urllib.request.urlopen()函數實際上是使用的是默認的opener,只不過在這里我們需要定制一個opener來指定handler。
3a.安裝opener
urllib.request.install_opener(opener)
install_opener 用來創建(全局)默認opener,這個表示調用urlopen將使用你安裝的opener。
3b.調用opener
opener.open(url)
該方法可以像urlopen函數那樣直接用來獲取urls:通常不必調用install_opener,除了為了方便。
proxy = {u'https':u'14.118.253.99:6666'}
proxy_support = urllib2.ProxyHandler(proxy)# 注冊代理
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
opener.open(url) #url 是你要訪問的地址
5,從代理ip列表中隨機使用某ip去訪問URL的例子
import urllib.request
import random
url = 'http://www.whatismyip.com.tw'
iplist = ['115.32.41.100:80','58.30.231.36:80','123.56.90.175:3128']
proxy_support = urllib.request.ProxyHandler({'http':random.choice(iplist)})
opener = urllib.request.build_opener(proxy_support)
opener.addheaders = [('User-Agent','Test_Proxy_Python3.5_maminyao')]
urllib.request.install_opener(opener)
response = urllib.request.urlopen(url)
html = response.read().decode('utf-8')
print(html)
讀到這里,這篇“python爬蟲http代理實例分析”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。