点赞 ➕ 评论 ➕ 收藏 = 三连再看你最帅
目录
一、 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 黑科技专栏 | 黑科技级 | 有一定的基础,学以致用 |
大数据知识体系丨集锦专栏 | 工作/就业 | 大数据领域从业者,就业升职加薪 |
信息技术智库社区 | 吹水/互助 | 互联网相关人员,白嫖奖品丨官方活动 |
上网速度更快独享代理 IP 的服务有点就在于用户独享性性质。意思就是说这个独享的代理 IP 的上网线路不像其他的普通代理那样,是所有用户共同使用的线路,只提供给单独购买的客户使用,大大的提升了用户的上网速度。独享的代理 IP 优势就在于可以让用户在上网、下载、或者工作的时候可以让上网速度不受其他用户上网的干扰。
使用独享代理 IP 的用户一般都是自己独自使用的一个代理服务器,这无形中就保证了 IP 资源的安全性。
使用普通代理 IP 上网也许会在我们上网或者下载资料的时候,IP 地址突然被封掉,会导致我们正在做的事情受到非常大的影响,甚至造成一定的损失。不过独享的代理 IP 就完全没有这方面的风险,可以放心的上网。
欲使用代理 ip、必先做以下 2 个准备工作。
Python requests
花几十块买一个海外服务器(放心!现在云服买来即可用,不用安装配置啥,自带 python 的)
了解背景知识。python 之所以强大,一个重要的原因就是,拿来即用的代码库丰富!
其中,访问网页,最好用的就是 requests,没有之一。
get 方法
post 方法
header 参数,模拟用户
data 参数,提交数据
proxies 参数,使用代理
使用这条命令即可。
pip install requests
举一反四,其它包的安装方法类似!
GET 变量接受所有以 get 方式发送的请求,及浏览器地址栏中的 ?之后的内容。
POST 变量接受所有以 post 方式发送的请求,例如,一个 form 以 method=post 提交
r.status_code HTTP 请求的返回状态,200 表示连接成功
r.text HTTP 响应内容的字符串形式,即 url 对应的页面内容
r.encoding 从 HTTP header 中的响应内容编码方式
r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)
r.content HTTP 响应内容的二进制形式
导入 Requests 模块:
import requests
然后,尝试获取某个网页。访问本链接有惊喜哟~
r = requests.get('https://app.yinxiang.com/fx/13ce6bbd-f36f-4e92-be53-92dd381ed729')
动态住宅 IP 是私有 IP 地址。当你发送请求时,该请求会在访问 Web 时 通过真实用户而不是通过数据中心进行。
这意味着在请求访问时被阻止的可能性较小并且成功率更高。
无限并发
IP 可用率> 98%
API 调用频率:1 秒
HTTP、HTTPS 和 SOCKS5 协议
环境准备
硬件环境: mac
软件环境: python 3.8
代理环境: 动态住宅 ip 代理网站
个人认证
为响应国家要求,必须先认证的哟~
获取代理 ip
登录 Ipidea.net 账号,生成 API 链接,打开链接并将链接内的 IP 复制
到此,你拿到了代理 ip 的 api 链接,记得复制保存,等下要用。
当然,也可以直接把链接加到浏览器中, 则会返回类似的代理 ip。
如果提示,请添加 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
在上一步中,我们拿到了代理 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
到此,西红柿演示了:使用代码 ip 访问网站,这是一个简单的蜘蛛原型。 基于这个加以优化,可以实现很多有意思的事情,如有不懂,欢迎私聊咨询。
1、常用demo
2、问题答疑
Python 理论基础:全网最全丨 Python 快速入门专栏
Python 练习应用:全网最黑丨 Python 黑科技专栏