农业图谱网_分类-列表-详情三级爬取(源码)_一蓑烟雨任平生

Python爬虫实战:手把手教你爬取农产品数据(附代码) 前言 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 爬虫的网站:万邦国际集团。其成立于2010年,总部位于河南省郑州市,以“立足三农、保障民生、服务全国”为宗旨,业务涵盖综合性农产品冷链物流、高效生态农业开发、生鲜连锁超市、跨境电子商务、进出口贸易等农业全产业链。荣获重点龙头企业、全国农产品“综合十强市场”... 阅读详情

思路很简单就是先分类,爬取分类的数据,然后根据分类数据爬取每个种类下的列表数据,然后根据列表数据一个一个爬取详情数据

废话不多说,直接上代码

今天要倒霉的网站是农业图谱网

# -*- coding: utf-8 -*-
import requests
import pymysql
from bs4 import BeautifulSoup  # 用来解析网页
import uuid
import time
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 '
                  'Safari/537.36',
    'Accept-Language': 'zh-CN,zh;q=0.8'
}
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='zhang', charset='utf8')
cur = conn.cursor()
print("连接成功")
a = []
# 获取所有品种的名字,存放集合
a_resp = requests.get(f"http://tupu.zgny.com.cn/list_nzwbch.aspx", headers=headers)
a_page_one = BeautifulSoup(a_resp.content, "html.parser")
a_dd = a_page_one.find('div', class_='bigzhans_list_right_txt').find_all('a')
for ss in a_dd:
    a.append(ss['href'].split('/')[1].split('_')[2])

b = []
# 获取所有品种的名字,存放集合
b_resp = requests.get(f"http://tupu.zgny.com.cn/list_jibingfz.aspx", headers=headers)
b_page_one = BeautifulSoup(b_resp.content, "html.parser")
b_dd = b_page_one.find('div', class_='bigzhans_list_right_txt').find_all('a')
for ss in b_dd:
    b.append(ss['href'].split('/')[1].split('_')[2])

print(a)
print(b)

for zz in a:
    for i in range(1, 15):
        resp1 = requests.get(f"http://tupu.zgny.com.cn/Page_{i}_NodeId_nzwbch_js_{zz}.shtml", headers=headers)
        page_two = BeautifulSoup(resp1.content, "html.parser")
        dd = page_two.find('ul', class_='home-list3ccc').find_all('li')
        # 如果第二页没数据,就不要爬后面的数据了
        if not dd:
            break
        for ss in dd:
            papaer_id = str(uuid.uuid1())
            sUrl = ss.find('a')['href']
            resp2 = requests.get(sUrl, headers=headers)
            page_three = BeautifulSoup(resp2.content, "html.parser")
            # 获取标题
            title = page_three.find('div', class_='conLeft').find('h1').text
            # 获取来源
            source = page_three.find('div', class_='conLeft').find('p').text.split(' ')[0]
            # 获取时间
            timet = page_three.find('div', class_='conLeft').find('p').text[12:22]
            # 内容
            content = page_three.find('div', class_='wenZi_02').text.strip()
            # 类型
            p_type = "病虫害诊断"
            sql = "insert into knowledge(id,title,source,timet,content,p_type,url) VALUES (%s,%s,%s,%s,%s,%s,%s)"
            cur.execute(sql, (papaer_id, title, source, timet, content, p_type, sUrl))
        print("病虫害诊断SQL正在执行第{}页执行完毕".format(i))
        conn.commit()
        time.sleep(1)  # 防止服务器蹦了,间隔一秒钟
    print("病虫害诊断{}已完成".format(zz))
for zz in b:
    for i in range(1, 15):
        resp1 = requests.get(f"http://tupu.zgny.com.cn/Page_{i}_NodeId_jibingfztp_js_{zz}/List.shtml", headers=headers)
        page_two = BeautifulSoup(resp1.content, "html.parser")
        dd = page_two.find('ul', class_='home-list3ccc').find_all('li')
        if not dd:
            break
        for ss in dd:
            papaer_id = str(uuid.uuid1())
            sUrl = ss.find('a')['href']
            resp2 = requests.get(sUrl, headers=headers)
            page_three = BeautifulSoup(resp2.content, "html.parser")
            # 获取标题
            title = page_three.find('div', class_='conLeft').find('h1').text
            # 获取来源
            source = page_three.find('div', class_='conLeft').find('p').text.split(' ')[0]
            # 获取时间
            timet = page_three.find('div', class_='conLeft').find('p').text[12:22]
            # 内容
            content = page_three.find('div', class_='wenZi_02').text.strip()
            # 类型
            p_type = "检疫防治"
            sql = "insert into knowledge(id,title,source,timet,content,p_type,url) VALUES (%s,%s,%s,%s,%s,%s,%s)"
            cur.execute(sql, (papaer_id, title, source, timet, content, p_type, sUrl))
        print("检疫防治SQL正在执行第{}页执行完毕".format(i))
        conn.commit()
        time.sleep(1)  # 防止服务器蹦了,间隔一秒钟
    print("检疫防治{}已完成".format(zz))
cur.close()
conn.close()

在这里插入图片描述

农业领域的知识图谱构建(Agriculture_KnowledgeGraph) Agriculture_KnowledgeGraph demo:http://ecnukg.vicp.io github:https://github.com/qq547276542/Agriculture_KnowledgeGraph 欢迎star&fork~ 命名实体识别 进入主页面,输入文本,即可看到以下命名实体和分词的结果(确保django和neo4j都处于开启状态)... 阅读详情

相关推荐

农业知识图谱(Agriculture_KnowledgeGraph)项目环境构建

农业知识图谱(Agriculture_KnowledgeGraph)项目环境构建 项目地址见:https://github.com/qq547276542/Agriculture_KnowledgeGraph 1、 创建环境 创建一个单独的项目环境,命令如下: conda create -n kg python=3.6 其他的一些操作的命令(可跳过): 查看环境 conda info -e ...

野有蔓兮的博客 1万+

Scrapy 实现爬虫(1)--爬取农产品数据集

此博客是借鉴的别人的 ,原文章地址:https://www.cnblogs.com/WayneLiu/p/Python.html

努力变得不菜的菜鸡的博客 3597

Python爬虫实战:获取农产品价格、天气信息和农田管理数据

本文介绍了如何使用Python编写爬虫来获取农产品价格、天气信息和农田管理数据,以满足农业机构的需求。通过分析数据源的结构,发送HTTP请求,解析数据响应,以及存储和定时执行,你可以更轻松地获取所需的数据,提高农业生产效率。请注意,在实际应用中,需要遵守数据源的使用规则和法律法规,以确保合法性和道德性。希望这篇文章对你有所帮助,祝你的农业工作取得成功!

斌擎科技 1171

利用Java获取中国农药信息网数据,不需要用Python爬取....

1.这是农药信息网数据 2.这是我们系统利用Java解析出来的数据 /** *解析农药列表数据 * @Parms 页码,条数,登记证号,农药名称,登记持有人 **/ public static Map queryList(Integer pageNo,Integer pageSize,String djzh,String nymc,String cjmc) { try { //页码,条数,登记证号,农药名称,登记持有人 String address = “https://www...

weixin_42722362的博客 1082

农业数据爬虫:Python爬虫获取农产品价格和农业技术信息

本篇博客将指导您使用Python编写爬虫,从农业网站上获取农产品价格和农业技术信息。我们将介绍如何选择合适的目标网站、分析网站结构、处理查询参数等,同时为您提供充分的代码示例。跟随本文的指引,您将能够构建一个高效、稳健的农业数据爬虫,帮助您及时了解农产品价格和农业技术发展。

2201_76125393的博客 2574

基于Python爬虫抓取农业生产数据分析:种植面积、产量与市场价格

随着全球农业生产的持续发展和数据化管理的普及,农业生产相关数据的获取和分析变得尤为重要。通过对农业生产数据的分析,农业企业、农民及政府可以优化农业生产布局、预测产量、制定科学的农业政策,并有效进行市场调控。本文将介绍如何使用Python爬虫技术抓取农业生产相关数据,如种植面积、产量、市场价格等,并进行数据清洗、存储与分析。通过本文的学习,你将掌握如何利用Python的最新技术抓取农业数据,进一步帮助农业领域的数据驱动决策。通过本篇博客的学习,我们实现了抓取农业生产相关的数据,包括种植面积、产量和市场价格。

2201_76125261的博客 1359

基于深度学习的农作物病虫害识别系统

基于深度学习的农作物病虫害识别系统

qq_42135426的博客 1万+

标准的农业病虫害图像库

1、相关资料 中科院合肥智能机械研究所的陈雷等,采集的高分辨率和高相似度的同类农作物病害原始图像数据,经植物病理学家有关专家对病害种类确认核实后,建立了国内标准的农业病虫害图像库, 仅水稻㼿,小麦和玉米种田间作物的图像数量就达到17624张, 该基础数据资源可作为病害识别建模的训练样本使用。 2、网站 3、扩展数据库 【1】Digipathos作物病害公开数据集网站 【2】中国科学数据网 ...

慕云 5835

农业领域数据资源获取与分析——爬取新发地官网信息

目录1 开发环境2 程序功能介绍(1)实验目的(2)数据说明(3)技术说明3 程序设计的思路4 关键技术及难点5 程序的详细设计5.1 爬取数据5.2 读取数据5.3查看数据的整体情况5.4数据清洗5.5数据分析6 可视化展示7 结论......

WangyiboH的博客 3696

基于Scrapy的农业数据爬虫完整设计与实现

本文还有配套的精品资源,点击获取 简介:本项目利用Python的Scrapy框架设计并实现了农业数据爬虫系统,用于自动化获取和处理农业相关网络数据。通过爬虫系统可以收集农业资讯、价格信息、气象数据等,旨在提升农业生产效率和质量。项目包括需求分析、Scrapy项目架构设计、实现步骤、挑战解决方法以及对农业科学研究、市场预测、政策制定等领域的支持。 1. Scrapy...

weixin_35755188的博客 1212

农产品大数据的抓取和分析方法探索.pdf

农产品大数据的抓取和分析方法探索农产品

Python的requests库爬取重点农产品市场信息平台生猪数据并可视化

最近被老师安排了爬虫案例编写任务,因为是教材中的新手案例,要求用requests库进行爬取,力求简单易懂。浏览器:firefox库:request。

hnndyzc的博客 1661

GUI基于Python语言爬虫程序(抓取农产品网站,抓取结果存入excel,并有折线图等简易数据分析功能)

利用Python语言抓取农产品网站(一亩田、新发地、惠农网等),定向自动下载所需数据为excel

大数据农产品数据分析:基于Python机器学习算法农产品爬虫可视化分析预测系统

本研究致力于设计并实现了一款基于Python的农产品可视化分析预测系统,系统主要利用requests库进行网络数据爬取,BeautifulSoup库解析网页内容,从惠农网获取相关农产品信息。系统功能包括数据价格分析、管理查询等,用户可以根据农产品名称进行机器学习模型的训练与预测,采用sklearn中的多元线性回归模型进行未来一周农产品价格的预测,并通过可视化分析展示结果。

专注 AI、大数据、Python、爬虫、数据分析可视化、机器学习、推荐算法、知识图谱、大模型应用与全栈系统开发,长期沉淀真实项目案例、源码解析、系统设计、部署经验与工程化实践,分享可运行、可复用、可落地的技术方案。 4955

【干货攻略】Oracle报错篇 ORA-01378 磁盘扇区大小不兼容问题

本期将为大家分享“ORA-01378 磁盘扇区大小不兼容”报错的问题解决方案。

PWY13148的专栏 1437

Ubuntu20.04下运行LOAM系列:A-LOAM、LeGO-LOAM、SC-LeGO-LOAM、LIO-SAM 和 LVI-SAM

在我第一篇博文Ubuntu 20.04配置ORB-SLAM2和ORB-SLAM3运行环境+ROS实时运行ORB-SLAM2+Gazebo仿真运行ORB-SLAM2+各种相关库的安装的基础环境下跑通A-LOAM首先已经按照上一篇文章已经安装好了ROS noetic、Eigen3.4.0、OpenCV4.2.0和PCL1.10,A-LOAM在Github的开源地址:https://github.com/HKUST-Aerial-Robotics/A-LOAM。接下来根据代码要求,需要安装Ceres,另外环境的变

zardforever123的博客 3万+

python爬虫——爬取农业智能知识服务平台-病虫害百科(写入excel)

爬取农业智能知识服务平台-病虫害百科的相关内容,并且将其写入excel文件

qq_65384447的博客 1061

原子力显微镜AFM图像处理软件Gwyddion使用教程(图文)

Gwyddion使用教程Gwyddion简介Gwyddion user guide下载地址本次教程用的AFM扫描图像下载地址AFM/STM校准样品Gwyddion使用step1step2step3step4step5step6step7step8你没见过的CD磁道到底长啥样一张图总结 Gwyddion简介        &nbs...

王纯配的博客 5万+

全国各地农产品蔬菜数据爬取并可视化分析

全国各地农产品蔬菜数据爬虫 - 可爬取任意年月份 - 数据部分展示如下(2022年1月) 数据部分展示如下(2022年2月)白菜数据 可结合可视化程序效果图如下: 秋秋2777.077.178(忽略.) 围 SupAort ...

qq_43374605的博客 3201

[EDA系列]二、Altium Designer异形封装实战:从CAD导入到PCB布局

本文详细介绍了在Altium Designer中实现异形封装的实战流程。通过五步核心操作,将CAD软件中的复杂二维轮廓精准导入并转换为可直接用于PCB布局的智能封装,解决了不规则形状铺铜的难题,特别适用于射频天线、传感器外壳等对机械尺寸有严苛要求的设计场景。

weixin_29194817的博客 142

群晖设置公网ipv6方式域名解析访问

群晖、IPV6、域名解析

爬山虎的博客 2万+

中国农网_数据抓取(源码)_一蓑烟雨任平生

废话不多说,直接上代码 今天要倒霉的网站是中国农网 import requests # 用来请求网址 import pymysql # 用来存数据库 from fake_useragent import UserAgent from bs4 import BeautifulSoup # 用来解析网页 import time # 中国农网 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/53

Jaeger_Java的博客 560

echarts实现3D地图——map3D

【代码】echarts实现3D地图——map3D。

xiaoququ的博客 7316

【Python爬虫】Scrapy篇④——起点中文网书架列表爬取

111

ww0peo的博客 744

<PLC><工控>汇川Easy521PLC与压力传感器485通讯实例

有些PLC在进行串口通讯时,配置完串口参数后,还需要自己编程序来读写,但本例中汇川Easy521配置完成后,想要读取从站什么数据,只需要在“COM0 Modbus配置窗口”配置即可。可以同时配置多个从站。在配置窗口的右侧点击新增按钮,就会自动生成一条从站的配置,默认从站站号为“1”,触发方式是“循环”,功能码是03(读寄存器),从站寄存器地址为0,长度为“1”,映射地址需要自己添加。因为我们是将PLC设置为Modbus主站,所以压力传感器就是从站,我们的需求时PLC从这些从站传感器中读取数据,比如压力值。

用沸腾的热血,支付我们的人生吧! 6454

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 农机资讯网_数据爬取(源码)_一蓑烟雨任平生
下一篇: SpringBoot Cors跨域__一蓑烟雨任平生
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值