這兩天python
有小夥伴問小帥bflask
爲何我爬取 xx 網站的時候瀏覽器
不返回給我數據服務器
並且還甩一句話給我app
「系統檢測到您頻繁訪問,請稍後再來」學習
小帥b看了一下他的代碼網站
for i in range(1,10000):url
requests.get(url)spa
瞬間震驚了debug
這就感受
被連續 fxxk 了 1w 次
你說對方受得了?
不封你 IP 封誰?
要會假裝
要想一想看
人是怎麼訪問網站的
此次咱們來講說假裝 Header
那麼
接下來就是
學習python的正確姿式
當你要去爬取某個網站的數據的時候
你要想一想看
若是是別人爬取你的數據
你會作什麼操做
你是否是也不想
讓別人隨隨便便就瘋狂請求你的服務器
你是否是也會
採起必定的措施
好比
小帥b有一個網站
你分析到了小帥b的地址
當你想要經過 python 來爬取的時候...
恩
小帥b來寫一個簡單的能夠被請求的例子
from flask import Flask
app = Flask(__name__)
@app.route('/getInfo')def hello_world(): return "這裏僞裝有不少數據"
if __name__ == "__main__": app.run(debug=True)
ok
假設你如今分析到了小帥b的地址了
也就是能夠經過 /getInfo 就能夠獲取到小帥b網站上的數據了
你感受很爽
就開始請求了
url = 'http://127.0.0.1:5000/getInfo' response = requests.get(url) print(response.text)
沒錯
這個時候你確實獲取到數據了
小帥b以爲有點不對勁了
想看看請求的 header 信息
@app.route('/getInfo')def hello_world(): print(request.headers) return "這裏僞裝有不少數據"
if __name__ == "__main__": app.run(debug=True)
結果看到的 headers 信息是這樣的
Host: 127.0.0.1:5000User-Agent: python-requests/2.21.0Accept-Encoding: gzip, deflateAccept: */*Connection: keep-alive
哇靠
User-Agent: python-requests/2.21.0
竟然使用 python 的庫來請求
你說小帥b不封你封誰呢?
因此小帥b這個時候進行判斷
你就獲取不到數據了
@app.route('/getInfo')def hello_world(): if(str(request.headers.get('User-Agent')).startswith('python')): return "小子,使用爬蟲是吧?滾你的" else: return "這裏僞裝有不少數據"
if __name__ == "__main__": app.run(debug=True)
你這個時候的請求
if __name__ == '__main__': url = 'http://127.0.0.1:5000/getInfo' response = requests.get(url) print(response.text)
獲得的結果就是
小子,使用爬蟲是吧?滾你的
你已經在小帥b面前暴露了
那麼怎麼辦呢?
假裝本身唄
python 不能夠訪問
瀏覽器能夠訪問呀
因此你能夠修改你的請求頭
還記得 Fiddler(可點擊) 嗎?
你能夠先在瀏覽器訪問
而後在抓取數據的時候獲取到 Header 數據
固然你也可使用 Chrome (可點擊) 的控制面板獲取 Header
有了 Header 信息以後
就可使用 requests(可點擊) 模塊輕鬆獲取
恩,如今的你學會僞裝本身是瀏覽器了
if __name__ == '__main__':
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36' }
url = 'http://127.0.0.1:5000/getInfo' response = requests.get(url,headers=headers) print(response.text)
再獲取一次能夠發現
返回的是
這裏僞裝有不少數據
ok,你又獲取到數據了
固然
僅僅是假裝本身是瀏覽器還不夠的
要多站在對方的角度想問題
日後
小帥b還會繼續跟你扯
怎麼應對反爬蟲的種種策略
peace
帥b老仙
法力無邊
與本文相關的文章