程序员必须会的小技巧_代理ip

一、? why 代理 ip

第一,独享 IP 提高网络速度

上网速度更快独享代理 IP 的服务有点就在于用户独享性性质。意思就是说这个独享的代理 IP 的上网线路不像其他的普通代理那样,是所有用户共同使用的线路,只提供给单独购买的客户使用,大大的提升了用户的上网速度。独享的代理 IP 优势就在于可以让用户在上网、下载、或者工作的时候可以让上网速度不受其他用户上网的干扰。

第二,更高的安全性

使用独享代理 IP 的用户一般都是自己独自使用的一个代理服务器,这无形中就保证了 IP 资源的安全性。

第三,更高的可靠性

使用普通代理 IP 上网也许会在我们上网或者下载资料的时候,IP 地址突然被封掉,会导致我们正在做的事情受到非常大的影响,甚至造成一定的损失。不过独享的代理 IP 就完全没有这方面的风险,可以放心的上网。

二、? 准备工作(已安装 requests,可跳过本节)

欲使用代理 ip、必先做以下 2 个准备工作。

Python requests

花几十块买一个海外服务器(放心!现在云服买来即可用,不用安装配置啥,自带 python 的)

1、? 背景知识 requests

了解背景知识。python 之所以强大,一个重要的原因就是,拿来即用的代码库丰富!

其中,访问网页,最好用的就是 requests,没有之一。

get 方法

post 方法

header 参数,模拟用户

data 参数,提交数据

proxies 参数,使用代理

2、? pip 安装 requests

使用这条命令即可。

pip install requests

3、? pycharm 安装 requests

举一反四,其它包的安装方法类似!

4、? requests 常用调用方式

GET 变量接受所有以 get 方式发送的请求,及浏览器地址栏中的 ?之后的内容。

POST 变量接受所有以 post 方式发送的请求,例如,一个 form 以 method=post 提交

5、? requests 返回参数

r.status_code HTTP 请求的返回状态,200 表示连接成功

r.text HTTP 响应内容的字符串形式,即 url 对应的页面内容

r.encoding 从 HTTP header 中的响应内容编码方式

r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)

r.content HTTP 响应内容的二进制形式

6、? 一行代码使用 requests

导入 Requests 模块:

import requests

然后,尝试获取某个网页。访问本链接有惊喜哟~

r = requests.get(

三、? 代理 ip 技术

1、⚽️ 什么是动态住宅 IP?

动态住宅 IP 是私有 IP 地址。当你发送请求时,该请求会在访问 Web 时 通过真实用户而不是通过数据中心进行。

这意味着在请求访问时被阻止的可能性较小并且成功率更高。

无限并发

IP 可用率> 98%

API 调用频率:1 秒

HTTP、HTTPS 和 SOCKS5 协议

2、? 生成代理 api

环境准备

硬件环境:mac

软件环境:python 3.8

代理环境:动态住宅 ip 代理网站

个人认证

为响应国家要求,必须先认证的哟~

获取代理 ip

登录 Ipidea.net 账号,生成 API 链接,打开链接并将链接内的 IP 复制

到此,你拿到了代理 ip 的 api 链接,记得复制保存,等下要用。

当然,也可以直接把链接加到浏览器中, 则会返回类似的代理 ip。

如果提示,请添加 ip 白名单,可以先这样,再这样。

3、? api 生成代理 ip

在生成之前,可选择的添加一下参数。

生成代理 ip 的代码:

    def get_proxie(self, api_url):

        # 搜:信息技术智库,回复源码

        # user_agent

        user_agent = Mozilla/5.0 (Linux; Android 10; EVR-AL00 Build/HUAWEIEVR-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.186 Mobile Safari/537.36 baiduboxapp/11.0.5.12 (Baidu; P1 10)

        headers = {

            User-Agent: user_agent}

        res = requests.post(api_url,headers=headers, verify=True)

        proxie = "https://%s"%(res.text)

        proxies = {http: proxie}

        # proxie_check 方法为测试访问,可以不加!

        is_valid, proxies = visitor.proxie_check(proxies)

        return is_valid, proxies

测试代理 ip

测试代理 ip:curl -x ip:端口 ipinfo.io

4、? 使用代理访问网页

在上一步中,我们拿到了代理 ip。

西红柿使用的是 ipidea:  可领取免费流量玩一玩 

当然,你如果还有其他方法,欢迎架微 notomoto 进 Python 裙交流。

代码解释:

url 为访问的地址

proxies=proxie 为使用代理

class Visitor(object):

    def __init__(self):

        """Inits Visitor with blah."""

        self.eggs = 0

 

    @time_decorator

    def proxie_visit(self, proxie ,url):

        user_agent_list = [

            Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)

            Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3,

        ]

        # 随机挑选一个 user_agent

        user_agent = random.choice(user_agent_list)

        Referer= ;  # 伪装成从baidu

        headers = {

            Referer: Referer,

            User-Agent: user_agent}

        # proxies 代理访问

        res = requests.get(url, headers=headers, proxies=proxie)

        return res.text

四、? 技术支持

1、? 找西红柿

到此,西红柿演示了:使用代码 ip 访问网站,这是一个简单的蜘蛛原型。基于这个加以优化,可以实现很多有意思的事情,如有不懂,欢迎私聊咨询。

2、? 找给力的官方客服

3、? 官网案例demo和答疑

1、常用demo

2、问题答疑

? Python 理论基础:全网最全丨 Python 快速入门专栏

? Python 练习应用:全网最黑丨 Python 黑科技专栏

————————————————

版权声明:本文为CSDN博主「不吃西红柿:notomoto」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接: