python:爬虫2——隐藏自己

一、添加浏览器

方法一:

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)

 

posted @ 2017-05-09 15:52  daduryi  阅读(320)  评论(0编辑  收藏  举报