爬虫3-time模块和代理

本文介绍如何通过限制访问速度和使用代理来避免爬虫被网站封禁。利用Python的time模块设置延迟,防止访问速度过快触发网站防御机制。同时,通过代理隐藏真实IP,减轻对目标服务器的压力,保持爬虫稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

爬虫对信息的访问速度高出常人很多,所以服务器如果监测到速度超过一个固定的阈值,就会让用户输入验证码,所以要限制访问速度,方法有两个

第一,利用time模块

import urllib.request
import urllib.parse
import json
import time
while True:
       contend=input('请输入 需要翻译的内容:(输入‘q’则是退出程序)')
       if contend=='q!':
              break

       url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
#隐藏的第一种方法
#head={}
#head['User-Agent']='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'
#隐藏的第二种方法

       data={}
       data['i']=contend
       data['from']='AUTO'
       data['to']='AUTO'
       data['smartresult']='dict'
       data['client']='fanyideskweb'
       data['salt']='1538989442643'
       data['sign']='40954ebe6d906735813c2cd7c2274733'
       data['doctype']='json'
       data['version']='2.1'
       data['keyfrom']='fanyi.web'
       data['action']='FY_BY_CLICKBUTTION'
       data['typoResult']='false'
#利用urlencode把它编码成url的形式
       data=urllib.parse.urlencode(data).encode('utf-8')
       req=urllib.request.Request(url,data)
       req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0')
       response=urllib.request.urlopen(url,data)
       html=response.read().decode('utf-8')
       target=json.loads(html)
       print('翻译结果:%s'%(target['translateResult'][0][0]['tgt']))
       time.sleep(5)

运行结果:每隔五秒翻译一次

 

 

第二,利用代理,代理就是它把自己访问到的信息都反馈给你,这样服务器检测到的是代理的ip地址,不是你的。

1.参数是一个字典{‘类型’:‘代理ip:端口号’}

proxy_support=urllib.request.ProxyHandler({})

2.定制、创建一个opener

opener=urllib.request.bulid_opener(proxy_support)

3,安装opener

urllib.request.install_opener(url)

4.打开opener

opener.open(url)

具体实现步骤:在浏览器搜索‘代理ip’-找到代理ip,http://www.whatismyip.com.tw访问这个地址就知道你所搜到的ip是什么类型

代码:

import urllib.request
import random 

url='http://www.whatismyip.com.tw'
iplist=['119.6.144.73:81','183.203.208.166:8118','111.1.32.28:81']
proxy_support=urllib.request.ProxyHandler({'http':random.choice(iplist)})
opener=urllib.request.build_opener(proxy_support)
urllib.request.install_opener(opener)
response=urllib.request.urlopen(url)
html=response.read().decode('utf-8')
print(html)
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值