python:爬蟲2——隱藏自己

daduryi發表於2017-05-09

一、新增瀏覽器

方法一:

head['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
req = urllib.request.Request(url, data, head)
response = urllib.request.urlopen(req)

 

只能在Request物件上加head,而urlopen(url, data, head)是錯誤的

方法二:

req = urllib.request.Request(url, data)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36')

 

先生成req,在動態新增

二、但高頻率多次訪問一個網站,一樣會被伺服器發現

解決辦法一:延遲提交時間

import time

while True:
    word = input('請輸入要翻譯的英文(“q!”退出程式):')
    if word == 'q!':
        break
        ........
        time.sleep(5)

 

解決辦法二:使用代理

(工作原理)把需要訪問的內容告訴代理,代理把它看到的所有東西發給我

 

但免費的ip地址可能不穩定,因此我們可以建立一個ip list,多加幾個ip進去,每次隨機使用一個。還可以建立一個採集ip的程式

random.choice(list)

 

相關文章