首页 > Python资料 博客日记
《Python 黑科技》程序员必须会的代理ip小技巧
2024-03-22 23:00:04Python资料围观158次
点赞 ➕ 评论 ➕ 收藏 = 三连再看你最帅
目录
一、🚖 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('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
环境准备
-
硬件环境: 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= '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】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj