5分钟上手Python爬虫:从干饭开始,轻松掌握技巧

3天干完6个月的活,Claude把模型搬上AMD 一条挺刺激的消息:Anthropic 给投资人的材料里有一张幻灯片,写着它的 Claude Mythos Preview 只花了大约​,就摸清了怎么让另一个 Claude 模型在 AMD 的 MI355X 上跑起来。同一处还写了个对照数字:过去给一块新芯片做推理适配,通常要几十名工程师、​。3 天对 6 个月,这个比值太扎眼,当天中文互联网上就冒出一堆「英伟达的护城河塌了」的说法。我把能翻到的材料都翻了一遍,越看越觉得,塌掉的那一小块是真的,可塌的位置和很多人想的不一样。 阅读详情

很多人都听说过爬虫,我也不例外。曾看到别人编写的爬虫代码,虽然没有深入研究,但感觉非常强大。因此,今天我决定从零开始,花费仅5分钟学习入门爬虫技术,以后只需轻轻一爬就能查看所有感兴趣的网站内容。广告?不存在的,因为我看不见。爬虫只会获取我感兴趣的信息,不需要的内容对我而言只是一堆代码。我们不在乎网站的界面,爬取完数据后只会关注最核心的内容。

在这个过程中,技术方面实际上没有太多复杂的内容,实际上就是一项耐心细致的工作。因此才会有那么多人选择从事爬虫兼职工作,因为虽然耗时较长,但技术要求并不是很高。今天学完之后,你就不会像我一样认为爬虫很困难了。或许在未来你会需要考虑如何保持会话(session)或者绕过验证等问题,因为网站越难爬取,说明对方并不希望被爬取。实际上,这部分内容是最具挑战性的,有机会的话我们可以在以后的学习中深入讨论。

今天我们以选择菜谱为案例,来解决我们在吃饭时所面临的“吃什么”的生活难题。

爬虫解析

爬虫的工作原理类似于模拟用户在浏览网站时的操作:首先访问官方网站,检查是否有需要点击的链接,若有,则继续点击查看。当直接发现所需的图片或文字时,即可进行下载或复制。这种爬虫的基本架构如图所示,希望这样的描述能帮助你更好地理解。

爬网页HTML

在进行爬虫工作时,我们通常从第一步开始,即发送一个HTTP请求以获取返回的数据。在我们的工作中,通常会请求一个链接以获取JSON格式的信息,以便进行业务处理。然而,爬虫的工作方式略有不同,因为我们需要首先获取网页内容,因此这一步通常返回的是HTML页面。在Python中,有许多请求库可供选择,我只举一个例子作为参考,但你可以根据实际需求选择其他第三方库,只要能够完成任务即可。

在开始爬虫工作之前,首先需要安装所需的第三方库依赖。这部分很简单,只需根据需要安装相应的库即可,没有太多复杂的步骤。

让我们不多废话,直接看下面的代码示例:

from urllib.request import urlopen,Request  
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0'}  
req = Request("https://www.meishij.net/?from=space_block",headers=headers)  
# 发出请求,获取html  
# 获取的html内容是字节,将其转化为字符串  
html = urlopen(req)  
html_text = bytes.decode(html.read())  
print(html_text)  

通常情况下,我们可以获取这个菜谱网页的完整内容,就像我们在浏览器中按下F12查看的网页源代码一样。

解析元素

最笨的方法是使用字符串解析,但由于Python有许多第三方库可以解决这个问题,因此我们可以使用BeautifulSoup来解析HTML。其他更多的解析方法就不一一介绍了,我们需要用到什么就去搜索即可,不需要经常使用的也没必要死记硬背。

热搜菜谱

在这里,让我们对热门搜索中的菜谱进行解析和分析。

from urllib.request import urlopen,Request  
from bs4 import BeautifulSoup as bf  
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0'}  
req = Request("https://www.meishij.net/?from=space_block",headers=headers)  
# 发出请求,获取html  
# 获取的html内容是字节,将其转化为字符串  
html = urlopen(req)  
html_text = bytes.decode(html.read())  
# print(html_text)  
 # 用BeautifulSoup解析html  
obj = bf(html_text,'html.parser')  
# print(html_text)  
# 使用find_all函数获取所有图片的信息  
index_hotlist = obj.find_all('a',class_='sancan_item')  
# 分别打印每个图片的信息  
for ul in index_hotlist:  
    for li in ul.find_all('strong',class_='title'):  
        print(li.get_text())  

主要步骤是,首先在上一步中打印出HTML页面,然后通过肉眼观察确定所需内容位于哪个元素下,接着利用BeautifulSoup定位该元素并提取出所需信息。在我的情况下,我提取的是文字内容,因此成功提取了所有li列表元素。

随机干饭

在生活中,实际上干饭并不复杂,难点在于选择吃什么。因此,我们可以将所有菜谱解析并存储在一个列表中,然后让程序随机选择菜谱。这样,就能更轻松地解决每顿饭吃什么的难题了。

随机选取一道菜时,可以使用以下示例代码:

from urllib.request import urlopen,Request  
from bs4 import BeautifulSoup as bf  
for i in range(3):  
    url = f"https://www.meishij.net/chufang/diy/jiangchangcaipu/?&page={i}"  
    html = urlopen(url)  
    # 获取的html内容是字节,将其转化为字符串  
    html_text = bytes.decode(html.read())  
    # print(html_text)  
    obj = bf(html_text,'html.parser')  
    index_hotlist = obj.find_all('img')  
    for p in index_hotlist:  
        if p.get('alt'):  
            print(p.get('alt'))  

这里我们在这个网站上找到了新的链接地址,我已经获取了前三页的数据,并进行了随机选择,你可以选择全部获取。

菜谱教程

其实上一步已经完成了,接下来只需下单外卖了。外卖种类繁多,但对于像我这样的顾家奶爸来说并不合适,因此我必须自己动手做饭。这时候教程就显得尤为重要了。

我们现在继续深入解析教程内容:

from urllib.request import urlopen,Request  
import urllib,string  
from bs4 import BeautifulSoup as bf  
  
url = f"https://so.meishij.net/index.php?q=红烧排骨"  
url = urllib.parse.quote(url, safe=string.printable)  
html = urlopen(url)  
# 获取的html内容是字节,将其转化为字符串  
html_text = bytes.decode(html.read())  
obj = bf(html_text,'html.parser')  
index_hotlist = obj.find_all('a',class_='img')  
# 分别打印每个图片的信息  
url = index_hotlist[0].get('href')  
html = urlopen(url)  
html_text = bytes.decode(html.read())  
obj = bf(html_text,'html.parser')  
index_hotlist = obj.find_all('div',class_='step_content')  
for div in index_hotlist:  
    for p in div.find_all('p'):  
        print(p.get_text())  

包装一下

上面提到的方法已经满足了我们的需求,但是重复手动执行每个步骤并不是一个高效的方式。因此,我将这些步骤封装成一个简单的应用程序。这个应用程序使用控制台作为用户界面,不需要依赖任何第三方库。让我们一起来看一下这个应用程序吧:

# 导入urllib库的urlopen函数  
from urllib.request import urlopen,Request  
import urllib,string  
# 导入BeautifulSoup  
from bs4 import BeautifulSoup as bf  
from random import choice,sample  
from colorama import init  
from os import system  
from termcolor import colored  
from readchar import  readkey  
  
  
FGS = ['green', 'yellow', 'blue', 'cyan', 'magenta', 'red']  
print(colored('搜索食谱中.....',choice(FGS)))  
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0'}  
req = Request("https://www.meishij.net/?from=space_block",headers=headers)  
# 发出请求,获取html  
# 获取的html内容是字节,将其转化为字符串  
html = urlopen(req)  
html_text = bytes.decode(html.read())  
hot_list = []  
all_food = []  
food_page = 3  
  
  
# '\n'.join(pos(y, OFFSET[1]) + ' '.join(color(i) for i in l)  
def draw_menu(menu_list):  
    clear()  
    for idx,i in enumerate(menu_list):  
        print(colored(f'{idx}:{i}',choice(FGS)))  
    print(colored('8:随机选择',choice(FGS)))  
  
  
def draw_word(word_list):  
    clear()  
    for i in word_list:  
        print(colored(i,choice(FGS)))  
  
def clear():  
    system("CLS")  
  
def hot_list_func() :  
    global html_text  
    # 用BeautifulSoup解析html  
    obj = bf(html_text,'html.parser')  
    # print(html_text)  
    # 使用find_all函数获取所有图片的信息  
    index_hotlist = obj.find_all('a',class_='sancan_item')  
    # 分别打印每个图片的信息  
    for ul in index_hotlist:  
        for li in ul.find_all('strong',class_='title'):  
            hot_list.append(li.get_text())  
            # print(li.get_text())  
  
def search_food_detail(food) :  
    print('正在搜索详细教程,请稍等30秒左右!')  
    url = f"https://so.meishij.net/index.php?q={food}"  
    # print(url)  
    url = urllib.parse.quote(url, safe=string.printable)  
    html = urlopen(url)  
    # 获取的html内容是字节,将其转化为字符串  
    html_text = bytes.decode(html.read())  
    obj = bf(html_text,'html.parser')  
    index_hotlist = obj.find_all('a',class_='img')  
    # 分别打印每个图片的信息  
    url = index_hotlist[0].get('href')  
    # print(url)  
    html = urlopen(url)  
    html_text = bytes.decode(html.read())  
    # print(html_text)  
    obj = bf(html_text,'html.parser')  
    random_color = choice(FGS)  
    print(colored(f"{food}做法:",random_color))  
    index_hotlist = obj.find_all('div',class_='step_content')  
    # print(index_hotlist)  
    random_color = choice(FGS)  
    for div in index_hotlist:  
        for p in div.find_all('p'):  
            print(colored(p.get_text(),random_color))  
  
  
  
def get_random_food():  
    global food_page  
    if not all_food :  
        for i in range(food_page):  
            url = f"https://www.meishij.net/chufang/diy/jiangchangcaipu/?&page={i}"  
            html = urlopen(url)  
            # 获取的html内容是字节,将其转化为字符串  
            html_text = bytes.decode(html.read())  
            # print(html_text)  
            obj = bf(html_text,'html.parser')  
            index_hotlist = obj.find_all('img')  
            for p in index_hotlist:  
                if p.get('alt'):  
                    all_food.append(p.get('alt'))  
    my_food = choice(all_food)  
    print(colored(f'随机选择,今天吃:{my_food}',choice(FGS)))  
    return my_food  
  
  
init() ## 命令行输出彩色文字  
hot_list_func()  
print(colored('已搜索完毕!',choice(FGS)))  
my_array = list(range(0, 9))  
my_key = ['q','c','d','m']  
my_key.extend(my_array)  
print(colored('m:代表今日菜谱',choice(FGS)))  
print(colored('c:代表清空控制台',choice(FGS)))  
print(colored('d:代表菜谱教程',choice(FGS)))  
print(colored('q:退出菜谱',choice(FGS)))  
print(colored('0~8:选择菜谱中的菜',choice(FGS)))  
while True:  
    while True:  
        move = readkey()  
        if move in my_key or (move.isdigit() and int(move) <= len(random_food)):  
            break  
    if move == 'q': ## 键盘‘Q’是退出  
        break  
    if move == 'c': ## 键盘‘C’是清空控制台  
        clear()  
    if move == 'm':  
        random_food = sample(hot_list,8)  
        draw_menu(random_food)  
    if move.isdigit() and int(move) <= len(random_food):  
        if int(move) == 8:  
            my_food = get_random_food()  
        else:  
            my_food = random_food[int(move)]  
        print(my_food)  
    if move == 'd' and my_food : ## 键盘‘D’是查看教程  
        search_food_detail(my_food)  
        my_food = ''  

完成一个简单的小爬虫其实并不复杂,如果不考虑额外的封装步骤,仅需5分钟即可完成,这已经足够快速让你入门爬虫技术。开始爬取某个网站的数据实际上是一项细致的工作。只需在网上搜索相关技术信息,找到适合的方法即可,如果有效就继续使用,不行就试试其他方法。

总结

本文的重点在于引导读者如何初步掌握爬虫技术。初步掌握爬虫技术并不难,但是在实际操作中可能会遇到一些困难,比如一些网站不允许直接访问,需要登录或者进行各种人机验证等。因此,最好先从爬取一些新闻资讯类的网站开始,因为这样相对容易。涉及用户支付等敏感信息的网站就不那么容易获取了。因此,在入门阶段,建议不要纠结于选择一个复杂的网站,先尝试入门即可。一旦理解了基本原理,遇到问题时就可以考虑添加组件或者使用第三方库来解决。

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方优快云官方认证二维码或者点击链接免费领取【保证100%免费】

点击免费领取《优快云大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取

二阶锥松弛在配电网最优潮流计算中的应用(IEEE33节点配电网最优潮流算例matlab程序)(yalmip+cplex) 文献[7]建立了以支路潮流计算为基础的OPF模型,针对OPF中的非凸性约束,采用SOCR技术将其松弛为二阶锥约束,整个 OPF 模型则被转化为二阶锥规划( Second Order Cone Programming,SOCP)问题,对其求解可以得到全局最优解。其次结合辐射型配电网潮流特点建立支路潮流约束,并考虑配电网中的可控单元,包括分布式电源和离散、连续无功补偿装置,建立其出力约束,该模型为非凸非线性模型;式中,αj,t和βij,t分别为t时段内节点i电压的二次方和支路ij电流的二次方。 阅读详情

相关推荐

从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南)

本文详细介绍了如何使用QJsonObject重构Qt网络API数据解析层,避免常见的JSON解析陷阱。通过安全解析模式、数据绑定和性能优化技巧,帮助开发者构建高效、健壮的解析逻辑,提升代码可维护性和可读性。特别适用于处理复杂嵌套的JSON响应数据场景。

weixin_29011667的博客 230

5分钟上手Python爬虫,轻松掌握爬虫技巧

本文的重点在于引导读者初步掌握爬虫技术。入门并不难,但在实际操作中可能会遇到一些困难,比如有些网站不允许直接访问,需要登录或进行人机验证等。因此,建议先从爬取一些新闻资讯类的网站开始,因为这样相对容易。涉及用户支付等敏感信息的网站就不那么容易获取了。因此,在入门阶段,不要选择太复杂的网站,先尝试简单的爬取。一旦理解了基本原理,遇到问题时可以考虑添加组件或使用第三方库来解决。# 初始化彩色输出init()# 定义颜色# 打印初始信息。

黑马程序员官方博客 1703

第一篇:常见CAN错误帧及其排查方向

在本文中主要阐述各类错误帧的形成原因以及在使用同星硬件设备出现错误帧时,应当 如何进行排查并消除错误帧。在 CAN 总线通信中,通常遇见的错误帧主要为以下五种,其 分别是:bit error、ACK error、stuff error、CRC error 以及 form error。

u013089100的博客 1746

快速上手Python爬虫,轻松掌握技巧!

本文的重点在于引导读者如何初步掌握爬虫技术。初步掌握爬虫技术并不难,但是在实际操作中可能会遇到一些困难,比如一些网站不允许直接访问,需要登录或者进行各种人机验证等。因此,最好先从爬取一些新闻资讯类的网站开始,因为这样相对容易。涉及用户支付等敏感信息的网站就不那么容易获取了。因此,在入门阶段,建议不要纠结于选择一个复杂的网站,先尝试入门即可。一旦理解了基本原理,遇到问题时就可以考虑添加组件或者使用第三方库来解决。

不定时分享最优质的网络技术与教程,满满的干货。 1616

电磁仿真新手必看:如何用CST Studio Suite 2023完成第一个PCB辐射仿真?

本文详细解析了如何使用CST Studio Suite 2023进行PCB辐射仿真,适合电磁仿真新手快速上手。从工程准备、求解器配置到端口设置和后处理技巧,全面覆盖三维全波电磁场仿真软件的核心操作步骤,帮助工程师精准预测和解决PCB电磁辐射问题。

y7z8a9的博客 734

转子动力学 | 临界速度与稳定性分析

本文深入探讨了转子动力学中的核心问题——临界速度与稳定性分析。临界速度是旋转机械发生共振的危险转速,通过模态分析和坎贝尔图可进行预测。文章还剖析了油膜涡动等稳定性问题,并结合ANSYS仿真案例,详细阐述了从建模、分析到设计优化的完整工程实践流程,为旋转机械的可靠设计与安全运行提供关键指导。

weixin_29313239的博客 518

双十一购物攻略:如何利用爬虫技术获取历史价格趋势,理性购物不踩雷

合集 - Python基础(32)1.????????Java开发者的Python快速进修指南:函数基础2023-11-132.????????Java开发者的Python快速进修指南:函数进阶2023-11-203.Java开发者的Python快速进修指南:异常捕获2023-11-214.Java开发者的Python快速进修指南:文件操作2023-11-225.Java开发者的Python快速进修指南:迭代器(Iter...

weixin_41148844的博客 74

STM32驱动电磁阀电路设计:从光耦选型到MOSFET驱动的实战解析

本文深入解析了STM32驱动24V电磁阀的完整电路设计,重点探讨了光耦选型与MOSFET驱动两大核心环节。针对电平转换与电气隔离需求,详细对比了EL357N与TLP2310等光耦在CTR、速度及耐压等关键参数上的差异与应用场景。同时,文章提供了MOSFET关键参数解读、驱动电路优化方案(如推挽驱动)以及完整的PCB布局、电源处理与调试避坑指南,旨在帮助工程师构建稳定可靠的工业控制电路。

weixin_29184371的博客 234

失敬,这届年轻人居然会用Python来搞钱?

继2022的「副业刚需」、「干饭人」之后,「搞钱」成了2023年第一批流行起来的热词。搞钱听上去直白、率真、坦诚,成为这一届年轻人最关切的话题之一。为了搞钱,有人炒股,有人炒基金,有人炒鞋~最近小编逛论坛的时候发现一个叫Python的工具,厉害到炸裂。2023搞钱的你一定要知道它。

qq_46094651的博客 696

Oracle11g下载与安装(windows)

一、Oracle11g下载 二、安装准备 三、执行安装步骤 四、测试连接 附:Oracle11g服务说明

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 2万+

SAP Group Reporting入门指南(11)--配置

这里选择的是FS项目目标属性,FS项目有四个目标属性,比如上图配置的是抵消目标属性,所以就去找触发FS项目的抵消目标属性配置的是哪个FS项目,就以这个FS项目作为贷方。这里选择的是FS项目目标属性,FS项目有四个目标属性,比如上图配置的是抵消目标属性,所以就去找源FS项目的抵消目标属性配置的是哪个FS项目,就以这个FS项目作为借方。例如,添加一个包含用于存储百分比的 FS 项的选项。这里选择的是FS项目的角色属性值,如果这里定义了,那么就从FS项目中找到FS项目角色属性值与之匹配的FS项目作为贷方。

bflyfish的博客 568

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

weixin_53637133的博客 181

第一章 电力电子仿真软件 PLECS简介

PLECS是瑞士Plexim公司开发的电力电子仿真软件,具有快速仿真、丰富元件库和热分析功能。软件提供单机版和嵌入MATLAB的版本,支持多平台安装且流程简单。首次运行需获取授权文件,提供60分钟演示模式。界面包含模型创建、帮助文档和元件库浏览器等功能区域,操作便捷。该软件是专业高效的电力电子系统仿真工具。

504

【第 009 讲】全面掌握 Python 注释:注释的定义与作用 | 单行注释 | 三引号与多行注释 | 注释使用的最佳实践

本文系统讲解 Python 注释的完整知识体系:从注释的定义与作用讲起,梳理单行注释的书写位置、临时屏蔽用法与 PEP 8 排版规范,剖析注释被忽略的底层机制;进而说明三引号字符串的本质与嵌套问题;最后给出注释使用的三条实践原则,帮助读者写好可读性高的注释。

大模型全栈工程师 · Thanks_ks 575

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 432

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: 几个可以整蛊你朋友的Python程序
下一篇: Python从入门到转行,我到经历了什么
网络安全_入门教程
博客等级 码龄4年 1万+粉丝 2151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值