python爬蟲入門---第四篇:網站對爬蟲的限制及突破測試


大部分網站對網絡爬蟲都有限制,限制方式有兩種:

一、Robots協議;二、網站通過判斷對網站訪問http的頭部信息來查看是否是爬蟲,並對爬蟲做相關攔截

第一種限制是書面限制,第二種是強制性阻攔限制。那我們如何去突破第二種限制呢?

首先我們要爬取一個網站大部分會使用requests庫的get()方法,而get()方法返回的response對象中包含了我們對網站的請求信息。例如:

import requests

url = 'https://www.cnblogs.com/huwt/'

res = requests.get(url)

print(res.request.headers)

-----------------------------------------------
輸出結果:
{'User-Agent': 'python-requests/2.19.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}

 

通過請求的頭部信息我們可以看到一個鍵值對:'User-Agent': 'python-requests/2.19.1',而強制性的限制就是通過判斷'User-Agent'的值來判斷是否為爬蟲,

只要我們將請求對象中'User-Agent'的值修改為瀏覽器的'User-Agent'即可,例如:

import requests

url = 'https://www.cnblogs.com/huwt/'

res = requests.get(url, headers = {'User-Agent':'Mozilla/5.0'})

print(res.request.headers)

-----------------------------------------------
輸出結果:
{'User-Agent': 'Mozilla/5.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}

 

我們可以看到通過修改get()方法的參數就能將'User-Agent'的值被修改為'Mozilla/5.0',此時我們的爬蟲模擬成了Mozilla/5.0瀏覽器,

這樣就可以不被識別的去訪問一些有所限制的網站了。

 

提醒:

以上方法只供實驗測試使用,任何一名爬蟲使用者都應遵守Robots協議,文明爬取網站。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM