Python实战:如何隐藏自己的爬虫身份

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

1、延时访问

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

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

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



2、动态代理

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

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

不停的攻击百度网






转载于:https://www.cnblogs.com/jpfss/p/9591520.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值