python使用動態ip抓取網頁

當我們從網站抓取一條信息時,如果我們經常訪問它,它可能會被被訪問的網站檢測到并被阻止。解決這個問題的方法之一是使用代理ip。當我們上網時,我們的電腦會被分配一個IP讓我們嘗試。當我們頻繁訪問一個網站時,網站會被阻止,因為我們發現同一個IP地址被訪問了很多次。此時,更改IP地址是最好的解決方案。此時如果我們使用多個不同的頭,此時會出現多個ip+主機的組合,訪問時被發現的概率會進一步降低。
 
 
關于代碼中ip代理的使用,介紹如下:
 
步驟:
 
1.urllib2庫中的ProxyHandler類,通過它可以使用ip代理來訪問網頁。
 
proxy _ support = urllib 2 . proxy handler({ }),其中參數是字典{'type':' proxy ip:端口號' }。
 
2、定制和創建一個開瓶器。
 
open er = urllib 2 . build _ open er(proxy _ support)
 
3.(1)安裝開啟器。
 
urlib2.install_opener(opener)
 
(2)調用默認的開瓶器。
 
open . open(URL)
 
對于沒有反爬蟲機制的網站,我們只需要直接引入如上的ProxyHandler類進行處理,以訪問csdn主頁為例:
 
導入urllib
 
url="http://www.csdn.net/"
 
對于范圍內的I(0,10000):
 
html=urllib.urlopen(url)
 
打印html.info()
 
使用上述代碼時,當循環到20時,將出現以下錯誤。
 
追溯(最近一次通話持續時間):
文件“C:/Users/Lenovo/pycharmports/untitle 1/jt2/_ _ init _ _。py”,第19行,中
html=urllib.urlopen(url)
文件“C:Python27liburllib.py”,第87行,在urlopen中
返回開啟器. open(url)
文件“C:python 27 LiberLib . py”,第213行,處于打開狀態
返回getattr(自我,姓名)(url)
open_http中第350行的文件“C:Python27liburllib.py”
h.endheaders(數據)
文件“C:Python27libhttplib.py”,第997行,在endheaders中
自我。_發送輸出(消息正文)
文件“C:Python27libhttplib.py”,第850行,in _send_output
self.send(消息)
文件“C:Python27libhttplib.py”,第812行,發送中
self.connect()
文件“C:Python27libhttplib.py”,第793行,在connect中
self.timeout,self.source_address)
create_connection中的文件“C:Python27libsocket.py”,第571行
引發錯誤
IOError: [Errno套接字錯誤] [Errno 10060]
 
這是因為我們使用計算機的單個ip進行頻繁訪問并被檢測到。
 
以下是使用ip代理的代碼:
 
導入urllib2
 
隨機導入
 
def getHtml(url,代理):
 
random_proxy = random.choice(代理)
 
proxy_support = urllib2。proxy handler({“http”:random _ proxy })
 
open er = urllib 2 . build _ open er(proxy _ support)
 
urllib2.install_opener(opener)
 
html=urllib2.urlopen(url)
 
返回html
 
url="http://www.csdn.net/"
 
代理=["101.53.101.172:9999 "、" 171.117.93.229:8118 "、" 119.251.60.37:21387 "、" 58.246.194.70:8080 "
 
"115.173.218.224:9797","110.77.0.70:80"]
 
對于范圍內的I(0,10000):
 
嘗試:
 
html=getHtml(url,代理)
 
打印。info () #打印網頁的標題信息只是為了顯示您已經訪問過該網頁,并且可以將其修改為您想要顯示的內容。
 
打印I
 
除了:
 
打印“已失敗”
 
在1096次測試中檢測到此代碼。我們應該知道我的列表中只有6個IP。如果我們增加IPs的數量,被發現的概率會不會再次降低?至于上例中的ip代理,可能過了一段時間就不用了,需要在網上搜索最新的ip代理進行更換。此外,程序中的異常處理是為了使程序能夠處理訪問ip代碼時出現的問題,因為一些ip代理在訪問時會失敗,這可以使程序更加健壯。
 
對于具有反爬蟲機制的網頁,以下是訪問csdn中博客的示例:
 
#編碼:utf-8
 
導入urllib2
 
隨機導入
 
def get_html(url、標頭、代理):
 
random_userAget = random.choice(標頭)
 
random_proxy = random.choice(代理)
 
#以下是模擬的瀏覽器訪問。
 
req = urllib2。請求(網址)
 
req.add_header(“用戶代理”,random_userAget)
 
req.add_header("GET ",url)
 
req.add_header("Host "," blog.csdn.net ")
 
req.add_header("Referer "," http://blog.csdn.net/?&page=6”)
 
#以下是使用ip代理的訪問。
 
proxy_support = urllib2。proxy handler({“http”:random _ proxy })
 
open er = urllib 2 . build _ open er(proxy _ support)
 
urllib2.install_opener(opener)
 
html = urllib2.urlopen(req)
 
返回html
 
url = "http://blog.csdn.net/?&page=3 "
 
使用來自多個主機的user_agent信息形成一個列表。當然,這個列表中所有的user _ agents都是不完整的,使用的時候可以自己去找。
 
用戶代理= [
 
“Mozilla/5.0(Windows NT 6.3;蘋果我們.。。hrome/45 . 0 . 2454 . 101 Safari/537.36 ",
 
“Mozilla/5.0(Windows NT 6.1)apple WebKit/537。。。。。likeGecko)Chrome/45 . 0 . 2454 . 101 safari/537.36”,
 
" Mozilla/5.0(Windows NT 10.0;蘋果網絡工具包.。。。。gecko)Chrome/50 . 0 . 2661 . 102 Safari/537.36”,
 
" Mozilla/5.0(Windows NT 6.1;蘋果網絡工具包/537.3 .。。。ML,像Gecko)Chrome/49 . 0 . 2623 . 112 Safari/537.36”,
 
"用戶代理:Mozilla/5.0(Windows NT 10.0;Win64x64 ).。。WebKit/537.36 (KHTML,像Gecko)Chrome/46 . 0 . 2486 . 0 Safari/537.36 Edge/13.10586”,
 
"用戶代理:Mozilla/5.0(Windows NT 10.0)applebwebki .。。。。36 (KHTML,喜歡Gecko)Chrome/46 . 0 . 2486 . 0 Safari/537.36 Edge/13 . 10586”,
 
" Mozilla/5.0(Windows NT 10.0;蘋果公司.。。。。KHTML,像Gecko)Chrome/50 . 0 . 2661 . 94 Safari/537.36 "

#互聯網上的ip可能不可用,所以您需要嘗試更多。
 
my proxy =[" 220 . 189 . 249 . 80:80 "、" 124.248.32.43:80"]
 
html = get_html(url、用戶代理、我的代理)
 
打印html.read()
 
主站蜘蛛池模板: 最色网在线观看| 国产精品国产三级国产a| 国产精品国产三级国产AV′| 国产亚洲欧美精品久久久| 伊人婷婷综合缴情亚洲五月| 亚洲av无码乱码在线观看| 三级免费黄录像| 中文字幕免费在线看线人| 精品亚洲一区二区三区在线播放| 污污内射在线观看一区二区少妇| 日韩亚洲专区在线电影| 夜精品a一区二区三区| 国产免费av一区二区三区| 亚洲精品tv久久久久久久久久| 国产婷婷综合在线视频| 俺去啦在线视频| 久久久久亚洲AV无码去区首| 香蕉在线精品视频在线观看2| 精品无码人妻夜人多侵犯18| 最近中文字幕在线mv视频7| 天天天天做夜夜夜做| 国产一卡二卡三卡| 亚洲人成色77777在线观看| t66y最新地址| 色婷婷在线精品国自产拍| 欧美中文字幕在线视频| 奇米影视7777久久精品| 国产一区二区三区美女| 亚洲av无码专区在线厂| 91精品国产高清久久久久久| 精品国产污污免费网站入口| 日本漫画全彩口工漫画绅士| 国产精品久久久久久搜索| 国产成人亚洲综合色影视| 亚洲熟女精品中文字幕| а√天堂资源中文在线官网| 被两个同桌绑起来玩乳动态gif| 欧美又黄又嫩大片a级| 在线免费视频一区| 偷窥欧美wc经典tv| 一本色道无码道dvd在线观看|