使用爬虫访问网站,需要尽可能的隐藏自己的身份,以防被服务器屏蔽,在工作工程中,我们有2种方式来实现这一目的,分别是延时访问和动态代理,接下来我们会对这两种方式进行讲解

1、延时访问

见名之意,延时访问就是在访问网站时设置一个访问周期,每隔几秒钟访问一次,这样的方式更像是人为访问网站

    1. import time
      1. import urllib.request
          1. cnt = 0
            1. #隐藏自己爬虫的身份的第一种策略是设置访问周期,使得程序更像是人为访问的
              1. while True: #每隔5秒钟访问一次百度网
                1. url = "https://www.baidu.com" #设置url地址
                  1. param = {} #设置参数,参数是字典
                    1. param = urllib.parse.urlencode(param).encode('utf_8') #将参数以utf-8编码方式来编码
                        1. req = urllib.request.Request(url, param)
                          1. #设置header的User-Agent属性,模拟该请求是由狐火浏览器发送的,也就是说欺骗服务器是人为发送的并未程序发送的
                            1. req.add_header("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:53.0) Gecko/20100101 Firefox/53.0")
                              1. response = urllib.request.urlopen(req) #访问网络
                                  1. html = response.read() #读取响应的结果
                                    1. result = html.decode("utf-8") #按照utf-8编码来进行解码
                                      1. if result != "":
                                        1. cnt += 1
                                          1. print("第%s次攻击百度网" %cnt)
                                            1. time.sleep(5) #程序睡眠5秒钟
                                          1.  

                                          运行结果:

                                          每隔5秒钟访问一次百度网

                                          2、动态代理

                                          使用代理服务器来访问网站,这种方法非常霸道,可以模拟出不同的服务器访问网站,也是最为推荐的一种方式,我们可以在百度网上查找免费的代理服务器IP

                                            1. import urllib.request
                                              1. import random
                                                  1. ipList = ['119.6.144.73:81', '183.203.208.166:8118', '111.1.32.28:81'] #定义多个代理IP,代理IP可以在网上搜免费的
                                                    1. cnt = 0
                                                      1. #隐藏自己爬虫的身份的第二种策略是使用代理,意思是模拟多个服务器访问
                                                        1. while True: #使用代理服务器不停的访问百度网
                                                          1. proxy_support = urllib.request.ProxyHandler({'http':random.choice(ipList)}) #定义一个代理对象,使用随机的ip
                                                              1. opener = urllib.request.build_opener(proxy_support)
                                                                1. opener.add_handlers = [("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:53.0) Gecko/20100101 Firefox/53.0")]
                                                                  1. urllib.request.install_opener(opener)
                                                                      1. response = urllib.request.urlopen("https://www.baidu.com") #访问网络
                                                                          1. html = response.read() #读取响应的结果
                                                                            1. result = html.decode("utf-8") #按照utf-8编码来进行解码
                                                                              1. if result != "":
                                                                                1. cnt += 1
                                                                                  1. print("第%s次攻击百度网" %cnt)
                                                                                1.  

                                                                                运行结果:

                                                                                不停的攻击百度网

                                                                                Python实战:如何隐藏自己的爬虫身份的更多相关文章

                                                                                1. Python实战:Python爬虫学习教程,获取电影排行榜

                                                                                  Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习 ...

                                                                                2. 零基础入门Python实战:四周实现爬虫网站 Django项目视频教程

                                                                                  点击了解更多Python课程>>> 零基础入门Python实战:四周实现爬虫网站 Django项目视频教程 适用人群: 即将毕业的大学生,工资低工作重的白领,渴望崭露头角的职场新人, ...

                                                                                3. Python实战:美女图片下载器,海量图片任你下载

                                                                                  Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习 ...

                                                                                4. 再一波Python实战项目列表

                                                                                  前言: 近几年Python可谓是大热啊,很多人都纷纷投入Python的学习中,以前我们实验楼总结过多篇Python实战项目列表,不但有用还有趣,最主要的是咱们实验楼不但有详细的开发教程,更有在线开发环 ...

                                                                                5. (转)Python新手写出漂亮的爬虫代码2——从json获取信息

                                                                                  https://blog.csdn.net/weixin_36604953/article/details/78592943 Python新手写出漂亮的爬虫代码2——从json获取信息好久没有写关于爬 ...

                                                                                6. Python实战之自己主动化评论

                                                                                  Python实战之自己主动化评论 玩csdn博客一个多月了,渐渐发现了一些有意思的事,常常会有人用相同的评论到处刷.不知道是为了加没什么用的积分,还是纯粹为了表达楼主好人.那么问题来了,这种无聊的事情 ...

                                                                                7. python scrapy版 极客学院爬虫V2

                                                                                  python scrapy版 极客学院爬虫V2 1 基本技术 使用scrapy 2 这个爬虫的难点是 Request中的headers和cookies 尝试过好多次才成功(模拟登录),否则只能抓免费课 ...

                                                                                8. zeromq 学习和python实战

                                                                                  参考文档: 官网 http://zeromq.org/ http://www.cnblogs.com/rainbowzc/p/3357594.html   原理解读 zeromq只是一层针对socke ...

                                                                                9. 【python】一个简单的贪婪爬虫

                                                                                  这个爬虫的作用是,对于一个给定的url,查找页面里面所有的url连接并依次贪婪爬取 主要需要注意的地方: 1.lxml.html.iterlinks()  可以实现对页面所有url的查找 2.获取页面 ...

                                                                                随机推荐

                                                                                1. 地图上显示div点位

                                                                                  功能核心:  地理坐标转屏幕坐标 用到的插件:jquery  animo动画插件 核心代码: var point = new Point(lon, lat, map.spatialReference) ...

                                                                                2. Android学习笔记之网络接口(Http接口,Apache接口,Android接口)

                                                                                  目前Android平台有三种网络接口可以使用,他们分别是:Java.NET.*(标准Java接口),org.apache(Apache接口),和android.Net.*(android网络接口). ...

                                                                                3. Android RingtoneManager 铃声管理

                                                                                  package com.Aina.Android; import java.io.File; import android.app.Activity; import android.content.I ...

                                                                                4. 12. ZooKeeper之Java客户端API使用—创建会话。

                                                                                  转自:https://blog.csdn.net/en_joker/article/details/78686649 客户端可以通过创建一个ZooKeeper(org.apache.zookeeper ...

                                                                                5. 【前端图表】echarts实现散点图x轴时间轴

                                                                                  话不多说,老规矩,先上图,实现echarts实现散点图,x轴数据为时间年月日. 实现代码如下: <!DOCTYPE html> <html> <head> < ...

                                                                                6. BigBoss按键映射

                                                                                  // BigBoss: SBSettings Toggle Spec 按键映射 http://thebigboss.org/guides-iphone-ipod-ipad/sbsettings-tog ...

                                                                                7. js+html实现遮罩层效果(收藏哦)

                                                                                  <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script ty ...

                                                                                8. Android 自己定义ViewGroup 实战篇 -&gt; 实现FlowLayout

                                                                                  转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38352503 .本文出自[张鸿洋的博客] 1.概述 上一篇已经基本给大家介绍了怎 ...

                                                                                9. leetcode-combination sum and combination sum II

                                                                                  Combination sum: Given a set of candidate numbers (C) and a target number (T), find all unique combi ...

                                                                                10. Visual Studio中你所不知道的智能感知

                                                                                  在Visual Studio中的智能感知,相信大家都用过.summary,param,returns这几个相信很多人都用过的吧.那么field,value等等这些呢. 首先在Visual Studio ...