使用urllib.request去进行直接的数据访问,次数过多,会被识别到非正常的访问,此时需要对请求进行隐藏
方法一:增加header,请求头的user-agent告诉了服务器访问的设备类型和浏览器等信息,将这部分内容加入请求中,需要使用urllib.request.Request,这个函数相比于urlopen更完整,可以加入headers等信息
如下图实例
方法二:使用add_header():urllib有专门用于添加头的方法,直接可以加入
虽然使用header做了一定隐藏,但长时间后还是会被辨别到非正常,此时可以使用两种方式进行进一步隐藏:
1. 延迟提交时间:如果是持续访问的请求,可以使用time模块,增加每次运行的等待时间
2.使用代理:urllib库有专门的设置代理方法urllib.request.ProxyHandler(),里面的参数为类型,代理ip和端口号,然后再使用build_opener(),最后进行opener安装(永久代理)或者调用