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

Posted 不吃西红柿:notomoto

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员必须会的小技巧:代理ip相关的知识,希望对你有一定的参考价值。

点赞评论收藏 = 三连再看你最帅

目录

一、🚖 why 代理 ip

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

第二,更高的安全性

第三,更高的可靠性

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

1、🚗 背景知识 requests

2、🛳 pip 安装 requests

3、🚧 pycharm 安装 requests

4、🚔 requests 常用调用方式

5、🏇 requests 返回参数

6、🏆 一行代码使用 requests

三、🏈 代理 ip 技术

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

2、🏈 生成代理 api

3、🏐 api 生成代理 ip

4、🤺 使用代理访问网页

四、🎱 技术支持

1、😜 找西红柿

2、🤡 找给力的官方客服

3、😊 官网案例demo和答疑


🍅 联系作者 不吃西红柿 

🍅 作者简介:CSDN 博客专家丨全站 Top 8🏆、HDZ 核心组成员、信息技术智库公号号主

🍅 简历模板、PPT 模板、学习资料、技术互助。关注我,都给你

很多人看西红柿的博客,不知道从何学起,为了广大人民群众的根本利益,我写了一个阅读指引,按照这个指引进行学习,多加练习,假以时日,势必能够……算了

学习路径指引定位适宜人群
全网最全丨 Python 快速入门专栏入门级没有语言基础,感兴趣的大学生
全网最黑丨 Python 黑科技专栏黑科技级有一定的基础,学以致用
大数据知识体系丨集锦专栏工作/就业大数据领域从业者,就业升职加薪
信息技术智库社区吹水/互助互联网相关人员,白嫖奖品丨官方活动

一、🚖 why 代理 ip

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

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

第二,更高的安全性

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

第三,更高的可靠性

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

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

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

  1. Python requests

  2. 花几十块买一个海外服务器(放心!现在云服买来即可用,不用安装配置啥,自带 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('https://app.yinxiang.com/fx/13ce6bbd-f36f-4e92-be53-92dd381ed729')

三、🏈 代理 ip 技术

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

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

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

  • 无限并发

  • IP 可用率> 98%

  • API 调用频率:1 秒

  • HTTP、HTTPS 和 SOCKS5 协议

2、🏈 生成代理 api

环境准备

个人认证

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

获取代理 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= 'https://www.baidu.com/'   # 伪装成从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 黑科技专栏

以上是关于程序员必须会的小技巧:代理ip的主要内容,如果未能解决你的问题,请参考以下文章

Jquery 小技巧

BurpSuite 代理设置的小技巧

程序员都会的 35 个 jQuery 小技巧

获取匿名代理后面的用户 ip

怎么把自己的ip地址转换成其他地方的

PHP教程-防止网站被刷票的小技巧