Python 爬虫入门、User Agent、代理IP、Cookie

爬虫工程师基础,User-Agent(用户代理) 网站通过识别请求头中 User-Agent 信息来判断是否是爬虫访问网站。如果是,网站首先对该 IP 进行预警,对其进行重点监控,当发现该 IP 超过规定时间内的访问次数, 将在一段时间内禁止其再次访问网站。网络爬虫使用程序代码来访问网站,而非人类亲自点击访问,因此爬虫程序也被称为“网络机器人”。绝大多数网站都具备一定的反爬能力,禁止网爬虫大量地访问网站,以免给网站服务器带来压力。代码重构了 User-Agent 字符串信息,这样就解决了网站通过识别 User-Agent 来封杀爬虫程序的问题。 阅读详情

Python 爬虫入门、User Agent、代理IP、Cookie

总结一下最近几天学习的python爬虫,说一下在这过程中踩的坑。

最简单的爬虫

代码如下:

import urllib.request as ur

request = ur.urlopen('https://edu.youkuaiyun.com/')
html = request.read()
print(html)

上面的这三行代码实际是两行代码可以组成最简单的爬虫,首先导入 urllib 库,使用 request = urllib.request.urlopen(url) 打开url,然后使用 html = request.read() 读取下载的html,最后打印读取到的html,这样一个简单的最简单的爬虫就写完了。

但是大多数网站都会进行反爬虫,为什么要反爬虫呢?因为每个服务器的资源是有限的,比如某一个服务器的连接数只能有3个,也就是说同时只能有三个用户连接服务器。当服务器已经有2和用户连接时,这个时候你使用爬虫去爬取人家的网站,最后一个连接被你占了,那人家的服务器就不能被真正的用户使用了,本来人家的服务器资源就不是很充裕,你还去占用,人家肯定不高兴,不高兴怎么办呢?就会使用反爬虫的技术手段。

一般的反爬虫的技术有,User Agent的使用、ip限制、登录限制等,我主要会说一下User Agent、代理ip、Cookie这三个方面。

User_Agent

User-Agent是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。用较为普通的一点来说,是一种向访问网站提供你所使用的浏览器类型、操作系统及版本、CPU 类型、浏览器渲染引擎、浏览器语言、浏览器插件等信息的标识。User Agent字符串在每次浏览器 HTTP 请求时发送到服务器!

浏览器User Agent字符串的标准格式为: 浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识 版本信息。

由于在使用浏览器访问一个网站时,浏览器会把本地主机的一些信息发个服务器其中就包括浏览器的各种信息,服务器就可以根据这个来判断正在访问的是不是浏览器。使用User Agent进行反爬虫就是使用的这个原理。

怎么解决呢?不用担心,服务器不是要这个User Agent的信息吗,那我们在爬取的时候给它不就行了吗。这个User Agent该怎么写呢?不用担心这个可以在搜索引擎上搜索,我这里也有一份 点击下载。

这里要使用User Agent代码就要修改了,首先在url读取时要修改为 

import urllib.request as ur

request = ur.Request('https://edu.youkuaiyun.com/')
response = ur.urlopen(request)
html = response.read()
print(html)

为什么在读取url的时候要首先使用 Request 包装一下呢?这个你看源码就可以只能 这个Request里可以传 headers 参数,这个headers参数里包含了 User Agent 信息。代码修改如下

import urllib.request as ur

request = ur.Request(
        url=url,
        headers={
            "User-Agent": "你的 User Agent 字符串",
        }
    )
response = ur.urlopen(request)
html = response.read()
print(html)

这样你的爬虫就可以伪装成浏览器了。

Cookie

Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。

虽然我们的爬虫伪装成了浏览器但是还不够,因为有一些网站是需要登录才能访问的,比如淘宝的搜索、QQ空间等,这时就可以使用Cookie来进行模拟登录。

下面以登录优快云为例

Cookie字符串的获取,首先打开浏览器并登录优快云账号,然后按下F12打开浏览器的调试界面,然后点击Network,然后在点击All。

然后刷新网页,刷新网页加载完后如下,

然后点击第一行,在右边的Headers里找到Cookie,复制里面的内容,这里就是登录后的Cookie字符串。

代码修改如下

import urllib.request as ur

request = ur.Request(
        url=url,
        headers={
            "User-Agent": "你的 User Agent 字符串",
            'Cookie': "你的 Cookie 字符串",
        }
    )
response = ur.urlopen(request)
html = response.read()
print(html)

这样就可以访问到需要登录的页面了,访问其他需要的登录的页面方法类似。

注意这里有坑

通过上面的方法我们获取到了Cookie,在实际浏览网页时我们每一次跳转页面Cookie里的内容都会改变,所以当我们获取到Cookie后就不要用我们刚刚使用的那个浏览器继续访问这个站点了,不然会出现一些错误,我们关闭网页后重新打开。这里可以参考 Cookie 的解释。

代理IP

虽然我们的爬虫已经可以伪装成浏览器并且可以访问到需要登录的页面但是还是不够的,服务器会检测一个ip对服务器的访问频率。一般我们浏览网页的时候是使用手点击鼠标,然后在跳转网页,这个过程与程序来说是很慢的,所以当一个ip高频率的访问网站时服务器就会认为这是一个爬虫在访问而不是一个人在访问网站,这时服务器就睡限制这个ip的访问。遇到这种情况怎么办呢?代理ip就出现了。

服务器不是会限制某一段时间内某个ip的高频率访问吗,那我们就切换不同的ip的去访问不就行了吗。

代理IP的获取

有一些比较好的免费的代理ip如 66免费代理网、89免费代理、K快代理等,也有一些付费的代理ip可以自行百度查询。

这里我使用的是66免费代理网的代理ip,api为 

http://www.66ip.cn/mo.php?sxb=&tqsl=2&port=&export=&ktip=&sxa=&submit=%CC%E1++%C8%A1&textarea=http%3A%2F%2Fwww.66ip.cn%2F%3Fsxb%3D%26tqsl%3D15%26ports%255B%255D2%3D8123%2C8585%2C80%26ktip%3D%26sxa%3D%26radio%3Dradio%26submit%3D%25CC%25E1%2B%2B%25C8%25A1

返回的是html所以需要我们自己去解析html,解析代码如下

def get_proxy_address():
    ip_api = '代理IP的api'
    proxy_address_html = ur.urlopen(ip_api).read()
    proxy_address_html = proxy_address_html.decode('gb2312').strip()
    proxy_address_html = re.sub('\n', '', proxy_address_html)
    proxy_address_pattern = '\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}:[0-9]*'
    proxy_address = re.findall(proxy_address_pattern, proxy_address_html)
    return proxy_address

代理ip的使用

1、创建 ProxyHeader

proxy_header = ur.ProxyHandler(
    {
        'http': proxy_address  # ip地址 ip:port
    }
)

2、创建 opener对象

proxy_opener = ur.build_opener(proxy_header)

3、使用代理ip打开url并下载html。

request = ur.Request(url='https://edu.youkuaiyun.com')
reponse = proxy_opener.open(request).read()
print(reponse)

总体代码

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Time    : 2019/9/27 15:22
@Author  : Code_Boy_Code
@File    : user_agent.py
@Software: PyCharm
@Desc    : 
"""
import json
import random

user_agent_json = None


def load_user_agent(user_agent_path):
    global user_agent_json
    with open(user_agent_path, 'r')as f:
        user_agent_json = json.load(f)


def get_user_agent_pc():
    """随机返回一个user-agent"""
    return random.choice(user_agent_json[random.choice(list(user_agent_json.keys()))])
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Time    : 2019/9/27 19:30
@Author  : Code_Boy_Code
@File    : csdn.py
@Software: PyCharm
@Desc    : 
"""
import re
import user_agent
import urllib.request as ur

user_agent_path = './user-agent.json'
user_agent.load_user_agent(user_agent_path)  # 加载user_agent


def getRequest(url):
    return ur.Request(
        url=url,
        headers={
            'User-Agent':  user_agent.get_user_agent_pc(),
            'Cookie': "你的 Cookie 字符串",
        }
    )


def get_proxy_address():
    ip_api = ''
    proxy_address_html = ur.urlopen(ip_api).read()
    proxy_address_html = proxy_address_html.decode('gb2312').strip()
    proxy_address_html = re.sub('\n', '', proxy_address_html)
    proxy_address_pattern = '\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}:[0-9]*'
    proxy_address = re.findall(proxy_address_pattern, proxy_address_html)
    return proxy_address


def getProxyOpenner():
    proxy_address = get_proxy_address()
    proxy_headler = ur.ProxyHandler(
        {
            'http': proxy_address[0]
        }
    )
    return ur.build_opener(proxy_headler)


url='https://edu.youkuaiyun.com'
request = getRequest(url)

proxy_opener = getProxyOpenner()  # 设置代理IP
response = proxy_opener.open(request).read()
print(response)

最后介绍一下我个人的公众号

这个公众号主要用于Java、C#、Python的学习分享和交流。要不要搞事情呀就差你啦!

 

参考文章:

User-Agent详解

Cookie

 

Python之反爬虫手段(User-Agent,Cookie,Referer,time.sleep(),IP代理池) 现在的爬虫越来越难,各大网站为了预防不间断的网络爬虫,都相应地做出了不同的反爬机制,那么如何能够在不被封IP的情况,尽可能多得爬取数据呢?这里主要介绍到一些通用的反爬措施,虽然不一定适合所有网站,但是大部分网站的爬取,个人认为还是可以的。本文主要介绍到User-Agent,Cookie,Referer,time.sleep()设置睡眠间隔,ProxyPool之IP池的搭建,小伙伴们各取所需! 由于后续爬虫案例都默认自带这些反爬技术,所以这里就统一详细介绍下,后续案例就不再过多涉及,废话不多说,开始展开! 阅读详情

相关推荐

Python网络爬虫的反爬策略

网络爬虫的反爬机制是网站保护自身资源的重要手段,而爬虫开发者则需要不断应对这些反爬策略。通过伪装User-Agent、使用代理IP、处理验证码、解析动态加载内容和管理Cookie等技巧,可以有效提高爬虫的成功率和稳定性。然而,在爬取数据时,应遵守网站的使用条款和法律法规,尊重网站的知识产权和隐私政策。

shejizuopin的博客 1787

python爬虫之浏览器User-Agent大全

爬虫时需要伪造浏览器User-Agent,可以手动准备,也可以用第三方库自动生成。 一.手动准备 这是我从真实的浏览器上复制的User-Agent,即每个版本都是真实存在过的。但不保证我的版本号是连续的,如实际发布了版本号1、2、3,可我从1升级的时候已经发布了3,自动升级时就跳过了2,也就无法记录到版本号2。不过这不影响爬虫,只是如果你想搜集绝对全面的User-Agent的话,即不遗漏每个版本,那我这个手动记录的可能不全。 版本号后面注释中的时间,只是发布当前版本时记录的,不一定代表"这是本月的第一

fj_changing的博客 2万+

Python爬虫中的代理IP和反反爬虫策略

代理IP是应对网站反爬机制的关键工具,主要用于解决403封禁、验证码弹窗等问题。文章介绍了代理IP的基本用法(单代理设置/认证代理)、免费与收费代理的优缺点对比,并提供了代理池自动切换的Python实现代码。还详细讲解了构建代理池的两种方法(抓取免费代理或使用开源项目),以及结合随机UA、重试机制的高级爬虫策略。针对不同反爬场景(IP限频、验证码、JS渲染等)给出了具体解决方案,最后总结出突破反爬的综合应对策略表。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1518

【Python】【进阶篇】二、Python爬虫的User-Agent用户代理

【Python】【进阶篇】二、Python爬虫的User-Agent用户代理

deepboat的博客 2287

Python编程基础教程:网络爬虫入门

1.背景介绍 近几年,随着互联网快速发展、技术水平不断提升,基于互联网的应用越来越广泛。但是在大数据时代,大数据量导致的计算密集型任务越来越多,分布式计算成为解决大数据问题的重要手段。而分布式计算所需要的技术基础之一就是网络通信。所以,网络爬虫也是一种必备技能。本文将从以下几个方面进行介绍: 1.什么是网络爬虫? 2.如何用Python实

AI天才研究院 1229

推荐算法之Thompson(汤普森)采样

如果想理解汤普森采样算法,就必须先熟悉了解贝塔分布。 一、Beta(贝塔)分布 Beta分布是一个定义在[0,1]区间上的连续概率分布族,它有两个正值参数,称为形状参数,一般用α和β表示,Beta分布的概率密度函数形式如下: 这里的Γ表示gamma函数。 Beta分布的均值是: 方差: ...

weixin_30508241的博客 4259

Python爬虫伪装,请求头User-Agent池,和代理IP池搭建使用

在使用爬虫的时候,很多网站都有一定的反爬措施,甚至在爬取大量的数据或者频繁地访问该网站多次时还可能面临ip被禁,所以这个时候我们通常就可以找一些代理ip,和不用的浏览器来继续爬虫测试。下面就开始来简单地介绍一下User-Agent池和免费代理ip池。

1万+

告别误唤醒!S32K3xx低功耗设计避坑指南:Fast Standby模式与WISR寄存器操作详解

本文深入解析了NXP S32K3xx系列MCU在低功耗设计中常见的误唤醒问题,并提供了基于Fast Standby模式的解决方案。文章重点剖析了DCMRWF5寄存器的配置方法、WISR/WISR_64唤醒中断状态寄存器的标志位处理策略,以及如何利用32KB Standby SRAM保存唤醒状态,从而帮助开发者构建稳定可靠的汽车电子低功耗系统。

weixin_29163857的博客 361

python爬虫,随机更换代理ip,User-Agent, Referer,方法

【代码】python爬虫,随机更换代理ip,User-Agent, Referer,方法。

jolinoy的博客 1261

海豚调度器(dolphinscheduler)再次使用,添加钉钉预警

1,首先我们部署是海豚调度器 1.3.8版本,由于页面只有邮件预警,所以在了解源码的同时,需要添加钉钉预警 2,说明,这一块是同事搞的,不是我搞的,新版本的dolphinscheduler已经有了钉钉模块,只是新版本还没有发布 3,我们现在只是添加简单的钉钉预警,任务成功或者失败会发送邮件+钉钉 4,具体操作 找到最新的源码devhttps://github1s.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-alert/src/ma...

qq_31866793的博客 3083

GPS定位不准?可能是GDOP在作怪!手把手教你优化卫星几何分布

本文深入解析了GPS定位精度不佳的常见原因——几何精度因子GDOP。通过剖析卫星几何分布对定位误差的放大效应,文章提供了从理解GDOP、PDOP、HDOP等关键指标,到使用专业APP实时诊断卫星天空图,再到利用在线工具提前规划最佳定位时机的完整实战指南。旨在帮助户外爱好者、无人机飞手及专业用户主动优化卫星几何条件,从而显著提升定位可靠性。

weixin_29062823的博客 304

python网络爬虫入门

菜鸟学python(三)之网络爬虫入门 通过前面的基本语法学习,我们可以开始实战了,这次实战就是最火的网络爬虫 ​ 网络爬虫,也叫网络蜘蛛(Web Spider),如果把互联网比喻成一个蜘蛛网,Spider就是一只在网上爬来爬去的蜘蛛。网络爬虫就是根据网页的地址来寻找网页的,也就是URL。举一个简单的例子,我们在浏览器的地址栏中输入的字符串就是URL,例如:https://www.baidu.com/ ​ 在python3中在Python3.x中,我们可以使用urlib这个组件抓取网页,urllib是一

厨师转行程序员 398

SAM3模型国内快速上手:Modelscope权重下载+环境配置一条龙指南

本文详细介绍了SAM3模型在国内的快速部署方案,包括通过Modelscope平台下载权重文件、优化CUDA 11.8环境配置以及实战避坑技巧。针对国内开发者常见的网络问题和环境兼容性问题,提供了从权重下载到模型加载的全流程指南,帮助用户高效完成部署并快速上手SAM3模型。

weixin_28465009的博客 1137

Python:urllib.request的5个基本程序

python urllib.request的5个基本程序一、基础版二、异常处理版三、User-Agent版四、IP代理版五、Cookie版六、总结 一、基础版 from urllib import request # 读取主页源码 url = "http://www.baidu.com/" # url = "https://www.baidu.com/" html = request.urlo...

北冥有鱼wyh的博客 552

基于YOLO26深度学习框架的智能停车场管理系统的算法研究实现方法

本文研究了基于YOLO26深度学习框架的智能停车场管理系统实现方法。系统采用CSPDarknet53作为主干网络,结合特征金字塔和注意力机制提升检测性能。通过数据预处理、模型训练和停车分析三个主要模块,实现了车位占用检测、车辆类型识别等功能。实验结果表明,该方法在检测精度和速度方面表现优异,为智能停车场管理提供了有效的技术解决方案。

一键难忘的博客 570

DeepFashion 服装识别:基于 YOLOv10 的深度学习实现与 UI 界面开发

随着深度学习的发展,目标检测算法在服装识别任务中表现出色,特别是 YOLO(You Only Look Once)系列模型。服装识别(Fashion Recognition)是计算机视觉领域的重要任务,广泛应用于。已提供,可用于服装分类、款式识别、虚拟试衣等应用。训练服装识别模型,并开发。

YOLO 802

浅谈网络爬虫

浅谈网络爬虫 什么是网络爬虫? 爬虫能干什么 搜索引擎 抢票、刷票等自动化软件 部分破解软件 金融等行业数据挖掘、分析数据来源 其他 爬虫很简单 语言的选择 两种语言的小demo 爬虫也不简单 ip、浏览器头(User-Agent)、和cookie限制 需登录的验证码限制、参数限制 JavaScript渲染/ajax加密 爬虫知识储备路线 1.基础语法: 2.正则和爬虫相关库,以及浏览器F12...

bigsai 1万+

二十八.国民技术MCU开发之UID获取与应用

在国民NT MCU中均有一个96位和128位的唯一设备标识符,其中UCID128 位, UID 为 96 位。手册中描述的作用是:通常用来做为序列号或作为密码,在编写闪存时,将此唯一标识与软件加解密算法相结合,进一步提高代码在闪存存储器内的安全性,也可用于激活带安全功能的自举程序(SecureBootloader)。UCID 和 UID,遵守国民技术芯片序列号定义,它包含芯片生产及版本相关信息。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 1676

Python网络爬虫高级技巧:从入门到精通

网络爬虫作为数据采集的重要工具,在数据分析、搜索引擎、内容聚合等领域发挥着重要作用。随着网站反爬技术的不断升级,传统的爬虫方法已经难以满足需求。本文将深入探讨Python网络爬虫的高级技巧,包括反爬策略、异步爬虫、分布式爬取、数据处理等方面,帮助开发者构建高效、稳定的爬虫系统。

lady_mumu的博客 6690

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python3网络爬虫(十一):爬虫黑科技之让你的爬虫程序更像人类用户的行为(代理IP池等)

转载请注明作者和出处:http://blog.youkuaiyun.com/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 近期,有些朋友问我一些关于如何应对反爬虫的问题。由于好多朋友都在问,因此决定写一篇此类的博客。把我知道的一些方法,分享给大家。博主属于小菜级别,玩爬虫也完全是处于兴趣爱好,如有不足之处,还望指正。

Jack-Cui 5万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Python网络爬虫原理及实践

scrapy.cfg是scrapy框架的入口文件,settings节点指定爬虫的配置信息,deploy节点用于指定scrapyd服务的部署路径。[deploy]url =

C1356498720的博客 1655

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

网络爬虫技术深入探索——基于Python的实例解析与实战应用

首先,让我们通过Python的requests库来演示基本的HTTP请求过程:# 设置请求头,模拟浏览器行为Win64;# 向目标网站发送GET请求# 检查响应状态码print("请求成功,开始解析响应内容")else:print(f"请求失败,状态码:{response.status_code}")Python凭借其强大而灵活的特性,成为网络爬虫开发的理想语言。

极客代码 1646

python爬虫防止IP被封的一些措施(伪造User-Agent ,在每次重复爬取之间设置一个随机时间间隔 ,伪造cookies ,使用代理)

转载于:转载地址 伪造User-Agent 在请求头中把User-Agent设置成浏览器中的User-Agent,来伪造浏览器访问。比如: send_headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Ch...

Romantic Chopin in C Sharp Minor 5839

Python 网络爬虫进阶:反爬机制与应对策略

反爬虫机制是指网站为了防止未经授权的数据抓取行为而采取的技术手段。IP 限制:通过限制单个 IP 的请求频率或总请求数量来防止滥用。User-Agent 检测:检查客户端发送的 User-Agent 字段是否合法,非主流浏览器可能会被拦截。Captcha 验证码:要求用户完成验证码验证后才能继续操作。动态内容加载:使用 JavaScript 动态生成网页内容,使得简单的 HTTP 请求无法获取完整数据。Cookie 和 Session 管理。

2501_91246469的博客 2210

Python爬虫之Urllib(内置库)

网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。通俗来讲,假如你需要互联网上的信息,如商品价格,图片视频资源等,但你又不想或者不能自己一个一个自己去打开网页收集,这时候你便写了一个程序,让程序按照你指定好的规则去互联网上收集信息,这便是爬虫,我们熟知的百度,谷歌等搜索引擎背后其实也是一个巨大的爬虫。解释1通过一个程序,根据Url(https//www.baidu.com/)进行爬取网页,获取有用信息。.......

m0_61490399的博客 1178

网络爬虫语言选择

什么是网络爬虫 “网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。” 爬虫的作用 爬虫能干的事情比较多,并且有些领域和爬虫都有很大的关联。不同深度,技术的爬虫工作者能干的事情也不同。 搜索引擎 抢票、刷票 金融等行业数据挖掘、分析数据来源等其他 爬虫语言的选择 • 对于初学者肯定会对选择java和python有些java爱好者可能会有点难受。对于java和

Laicaling的博客 2003
上一篇: TensorFlow错误Out of range: FIFOQueue '_3_batch_1/fifo_queue' is closed and has insufficient elements
下一篇: 论文阅读 Generative Adversarial Nets - GAN
Code_Boy_Code
博客等级 码龄9年 650粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值