一、添加浏览器

方法一:

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)

 

相关文章:

  • 2021-11-29
  • 2021-12-28
  • 2021-07-07
  • 2022-01-18
  • 2021-04-20
  • 2021-11-10
  • 2021-12-21
猜你喜欢
  • 2021-12-31
  • 2022-12-23
  • 2021-12-20
  • 2022-12-23
  • 2022-01-08
  • 2021-12-01
  • 2022-12-23
相关资源
相似解决方案