一、新增瀏覽器
方法一:
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)