遇到網站的反爬蟲機制,那麼咱們應該來如何應對呢?

遇到網站的反爬蟲機制,那麼咱們應該來如何應對呢?

 

前言

本文的文字及圖片來源於網絡,僅供學習、交流使用,不具備任何商業用途,版權歸原做者全部,若有問題請及時聯繫咱們以做處理。面試

加企鵝羣695185429便可免費獲取,資料全在羣文件裏。資料能夠領取包括不限於Python實戰演練、PDF電子文檔、面試集錦、學習資料等瀏覽器

一、使用代理

適用狀況:限制IP地址狀況,也可解決因爲「頻繁點擊」而須要輸入驗證碼登錄的狀況。網絡

這種狀況最好的辦法就是維護一個代理IP池,網上有不少免費的代理IP,參差不齊,能夠經過篩選找到能用的。對於「頻繁點擊」的狀況,咱們還能夠經過限制爬蟲訪問網站的頻率來避免被網站禁掉。函數

proxies = {'http':'http://XX.XX.XX.XX:XXXX'}
Requests:
  import requests
  response = requests.get(url=url, proxies=proxies)
Urllib2:
  import urllib2
  proxy_support = urllib2.ProxyHandler(proxies)
  opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)
  urllib2.install_opener(opener) # 安裝opener,此後調用urlopen()時都會使用安裝過的opener對象
  response = urllib2.urlopen(url)

二、時間設置

適用狀況:限制頻率狀況。學習

Requests,Urllib2均可以使用time庫的sleep()函數:網站

import time
time.sleep(1)

三、假裝成瀏覽器,或者反「反盜鏈」

有些網站會檢查你是否是真的瀏覽器訪問,仍是機器自動訪問的。這種狀況,加上User-Agent,代表你是瀏覽器訪問便可。有時還會檢查是否帶Referer信息還會檢查你的Referer是否合法,通常再加上Referer。ui

headers = {'User-Agent':'XXXXX'} # 假裝成瀏覽器訪問,適用於拒絕爬蟲的網站
headers = {'Referer':'XXXXX'}
headers = {'User-Agent':'XXXXX', 'Referer':'XXXXX'}
Requests:
  response = requests.get(url=url, headers=headers)
Urllib2:
  import urllib, urllib2   
  req = urllib2.Request(url=url, headers=headers)
  response = urllib2.urlopen(req)
相關文章
相關標籤/搜索