Python爬虫 | 反爬机制:IP限制高匿代理 IP 突破(爬虫 IP 被禁怎么办?)

一、 什么是代理?

在这里插入图片描述

二、 代理服务器的作用

可以进行请求的响应和转发

三、 在爬虫中为何要使用代理

如果我们使用爬虫对一个网站在一段时间内发起一个高频请求,该网站会检测出这个异常的现象,并将异常的请求 IP 获取,将 IP 加入到黑名单,然后改 IP 在近期就无法再次对该网站进行访问。

四、 代理的匿名度

匿名度是否知道使用代理是否知道真实IP
透明
匿名
高匿

五、 代理的类型

类型功能
http只能转发http协议的请求
https只能转发https协议的请求

一般的代理服务器两种类型均支持

六、 如何使用代理

1. 购(bai)买(piao)IP

条条大路通罗马,自己的 IP 被封了不能用,就得买别人的 IP
在这里插入图片描述

当然也是可以白嫖的,点击下方图片进入网站,注册登录之后,可以每天白嫖10个1-5分钟的ip,如果需要更多,就只能自己买了,看起来很便宜的样子。

在这里插入图片描述

好家伙

2. 提取 IP

大概这么配置一下,即可生成一个 API 接口,需要 IP 的时候调用一下就可以了,具体怎么选择,看个人需求。

在这里插入图片描述

def get_proxies():
    url_ip_port = """API"""  #  此处填写获取的API
    ip_port_json = requests.get(url_ip_port).json()
    print('已获取新ip_port:{ip_port},到期时间:{ExpireTime}'.format(ip_port=ip_port_json['data'][0]['IP'],
                                                           ExpireTime=ip_port_json['data'][0]['ExpireTime']))
    proxies = {
        "https": 'http://{}'.format(ip_port_json['data'][0]['IP']),
    }
    return proxies

使用 IP

搜狗主页代码里可以获取到本机 IP 地址
在这里插入图片描述
语法:
在请求中添加一个为 proxies 的参数
值为:{“https”: ‘http://【ip:port】’,}

if __name__ == '__main__':
    User_Agent_list = [
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763',
        'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko',
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4292.2 Safari/537.36']
    headers = {'User_Agent': random.choice(User_Agent_list)}
    # 本机访问
    sogou_index = requests.get(url='https://www.sogou.com/', headers=headers,).text
    tree = etree.HTML(sogou_index)
    print(tree.xpath('/html/head/script[1]//text()'))
    # 代理服务器访问
    sogou_index = requests.get(url='https://www.sogou.com/', headers=headers, proxies=get_proxies()).text
    tree = etree.HTML(sogou_index)
    print(tree.xpath('/html/head/script[1]//text()'))

在这里插入图片描述

进阶操作

用 Redis 搭一个 IP 池,需要时从 Redis 里随机取一个出来,定时自动删除,简直不要太舒服。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿过家家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值