Python實戰:如何隱藏自己的爬蟲身份

來源:互聯網
上載者:User

標籤:views   and   ice   str   res   ref   word   網路   csdn   

使用爬蟲訪問網站,需要儘可能的隱藏自己的身份,以防被伺服器屏蔽,在工作工程中,我們有2種方式來實現這一目的,分別是延時訪問和動態代理,接下來我們會對這兩種方式進行講解

1、延時訪問

見名之意,延時訪問就是在訪問網站時設定一個訪問周期,每隔幾秒鐘訪問一次,這樣的方式更像是人為訪問網站


  
  1. import time
  2. import urllib.request
  3. cnt = 0
  4. #隱藏自己爬蟲的身份的第一種策略是設定訪問周期,使得程式更像是人為訪問的
  5. while True: #每隔5秒鐘訪問一次百度網
  6. url = "https://www.baidu.com" #設定url地址
  7. param = {} #設定參數,參數是字典
  8. param = urllib.parse.urlencode(param).encode(‘utf_8‘) #將參數以utf-8編碼方式來編碼
  9. req = urllib.request.Request(url, param)
  10. #設定header的User-Agent屬性,類比該請求是由狐火瀏覽器發送的,也就是說欺騙伺服器是人為發送的並未程式發送的
  11. req.add_header("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:53.0) Gecko/20100101 Firefox/53.0")
  12. response = urllib.request.urlopen(req) #訪問網路
  13. html = response.read() #讀取響應的結果
  14. result = html.decode("utf-8") #按照utf-8編碼來進行解碼
  15. if result != "":
  16. cnt += 1
  17. print("第%s次攻擊百度網" %cnt)
  18. time.sleep(5) #程式睡眠5秒鐘
運行結果:

每隔5秒鐘訪問一次百度網



2、動態代理

使用Proxy 伺服器來訪問網站,這種方法非常霸道,可以類比出不同的伺服器訪問網站,也是最為推薦的一種方式,我們可以在百度網上尋找免費的Proxy 伺服器IP


  
  1. import urllib.request
  2. import random
  3. ipList = [‘119.6.144.73:81‘, ‘183.203.208.166:8118‘, ‘111.1.32.28:81‘] #定義多個代理IP,代理IP可以在網上搜免費的
  4. cnt = 0
  5. #隱藏自己爬蟲的身份的第二種策略是使用代理,意思是類比多個伺服器訪問
  6. while True: #使用Proxy 伺服器不停的訪問百度網
  7. proxy_support = urllib.request.ProxyHandler({‘http‘:random.choice(ipList)}) #定義一個代理對象,使用隨機的ip
  8. opener = urllib.request.build_opener(proxy_support)
  9. opener.add_handlers = [("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:53.0) Gecko/20100101 Firefox/53.0")]
  10. urllib.request.install_opener(opener)
  11. response = urllib.request.urlopen("https://www.baidu.com") #訪問網路
  12. html = response.read() #讀取響應的結果
  13. result = html.decode("utf-8") #按照utf-8編碼來進行解碼
  14. if result != "":
  15. cnt += 1
  16. print("第%s次攻擊百度網" %cnt)
運行結果:

不停的攻擊百度網






Python實戰:如何隱藏自己的爬蟲身份

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.