python_finall

本文介绍了如何使用Python的BeautifulSoup库来解析HTML文档,包括查找指定标签、获取标签属性值和检索标签之间的字符串等基本操作。
#find_all(name,attrs,recursive,string,**kwargs)
#返回一个列表类型储存查找的结果
#name:对标签名称的索引
from bs4 import BeautifulSoup
import requests
import re
r = requests.get("http://python123.io/ws/demo.html", timeout=30)
demo=r.text
soup=BeautifulSoup(demo,'html.parser')
#查找a标签
print("1",soup.find_all('a'))
print("2",soup.find('a'))
#查找a,b标签
print(soup.find_all(['a','b']))
#打印所有标签
for tepm in soup.find_all(True):
    print(tepm.name)
#attrs 对标签属性值的检索字符串,可标注属性检索
print(soup.find_all('p','course'))#查询 p标签属性中有course
#recursive 默认 True s搜索子孙节点
#String  检索<>...</>标签之间的字符串


def get_correct_peak_index(data_one,ND_index_finall, NX_index,ND_finall,NX,x_distance_all_accum_compute,peaks_lst,period_points,period_approximate_len): fudu_jbqz= [] pair_NX_index_jbqz = [] for i_jbqz in range (len(ND_index_finall )): NX_finall_index_jbqz = [] if len(NX_index) > 0: for j_jbqz in range(len(NX_index)): distance_NXx = ND_index_finall[i_jbqz ] - NX_index[j_jbqz ] if distance_NXx > 0: NX_finall_index_jbqz .append(NX_index[j_jbqz ]) else: break if len(NX_finall_index_jbqz ) == 0: fudu_jbqz .append('Null') G = 'Null' pair_NX_index_jbqz .append(G) else: G = NX_finall_index_jbqz[-1] fudu_cha_jbqz = ND_finall[i_jbqz] - data_one[G] pair_NX_index_jbqz .append(G) fudu_jbqz.append(fudu_cha_jbqz) else: G = 'Null' pair_NX_index_jbqz .append(G) fudu_jbqz.append('Null') if len(peaks_lst ) == len(period_points) : baseline_py_peak = data_one[peaks_lst[-1]] - max(ND_finall) standard_jbqz = data_one[peaks_lst[-1]] - data_one[period_points[-1]] - baseline_py_peak # 2024_8_26 这里报错代码 终于发现了 没有定义standard_jbqz的值,导致报错, else: pppp = [] for dw_lst in peaks_lst: pppp.append(data_one[dw_lst]) mmmax = max(pppp) baseline_py_peak = mmmax - max(ND_finall) standard_jbqz = abs(mmmax - data_one[period_points[-1]] - baseline_py_peak) score_lst_all_jbqz = [] for k_jbqz in range(len(fudu_jbqz)): if fudu_jbqz[k_jbqz] == 'Null': score_lst_all_jbqz.append(0) continue else: if standard_jbqz == 0 : standard_jbqz = 999 rate_jbqz = fudu_jbqz[k_jbqz] / standard_jbqz peak_value_rate_jbqz = abs(1 - rate_jbqz) period_len_dynamic = period_approximate_len - min(x_distance_all_accum_compute) period_distance_jbqz = ND_index_finall[k_jbqz] - peaks_lst[-1] period_rate_jbqz = abs(1- period_distance_jbqz/period_len_dynamic ) comprehensive_score_jbqz = 0.5* (1 - peak_value_rate_jbqz ) + 0.5*(1- period_rate_jbqz ) score_lst_all_jbqz.append(comprehensive_score_jbqz) index_num_peak_jbqz = score_lst_all_jbqz .index(max(score_lst_all_jbqz )) F_jbqz = ND_index_finall[index_num_peak_jbqz] G_jbqz = pair_NX_index_jbqz[index_num_peak_jbqz] F_value_jbqz = ND_finall[index_num_peak_jbqz] x_delta_py = 0.8* x_distance_all_accum_compute[index_num_peak_jbqz] baseline_py_lowest = 0.8* data_one[G_jbqz] return F_jbqz,F_value_jbqz, G_jbqz ,x_delta_py ,baseline_py_lowest
09-20
def select_ND_NX_dw_12s( data_one, ND, ND_index, NX, NX_index, peaks_lst, period_points, peak_need_delete_element, period_need_delete_element, baseline_py_lowest, jishu_num, ): ND_index_remodify_throughx = [] ND_remodify_throughx = [] ND_index_finall = [] ND_finall = [] period_len_rate_accum_compute = [] x_distance_all_accum_compute = [] # 初始判断周期的函数 if len(peaks_lst) <= 1: # 确定峰值索引 if len(ND) > 0: # 这里需要加条件 不能简单的根据大小来选取极值点 if len(ND_index) > 1: # 2023-12-18 peak = max(ND) # 2023_12_25 这里的有瑕疵,第一个点就可能选不对 f = ND_index[ND.index(peak)] # 第一步 通过x距离约束来筛选peak_index, 确保顺序不变 for i_dsts in range(len(ND_index)): if ND_index[i_dsts] == f: ND_index_remodify_throughx.append(ND_index[i_dsts]) ND_remodify_throughx.append(ND[i_dsts]) else: distance_NDx = abs(ND_index[i_dsts] - f) # f 是最大值的索引 # 根据周期的最大最小个数确定 if ( distance_NDx > 208 or distance_NDx < 24 ): # 2024_10_31 这里采集10s,周期数范围为6-26,对应长度为104-24 continue else: ND_index_remodify_throughx.append(ND_index[i_dsts]) ND_remodify_throughx.append(ND[i_dsts]) # 第二步 通过y值的一些约束来筛选真正的peak_index for j_dsts in range(len(ND_index_remodify_throughx)): # 2023-12-29 if len(NX) != 0: peak_rate = abs( (ND_remodify_throughx[j_dsts] - min(NX)) / (peak - min(NX)) ) else: peak_rate = abs(ND_remodify_throughx[j_dsts] / peak) if ( peak_rate > 0.30 ): # 这里阈值设置较低,为了把所有正确的点选进去 2023-12-29 这里不应该用二者的绝对值,而是该用二者相对极小值的值 第一次筛选值,阈值稍微高点 ND_index_finall.append(ND_index_remodify_throughx[j_dsts]) # writingto_txt('peak_with_max_peak_value_rate_record',peak_rate ) ND_finall.append(ND_remodify_throughx[j_dsts]) else: continue ( F, G, baseline_py_lowest, peak_need_delete_element, period_need_delete_element, ) = get_true_peak_and_period_index_12( data_one, ND_index_finall, ND_finall, NX_index, NX, peaks_lst, period_points, ) else: # 2023-12-23 这里没办法了 只能令F = ND_index[0],没有获取到周期长度 F, F_value, x_delta_py = ND_len_zero_select_F_peak_index_dw( data_one, ND, ND_index, peaks_lst ) G, baseline_py_lowest = general_select_NX_index( NX, NX_index, F, F_value, peaks_lst, period_points, peak_need_delete_element, period_need_delete_element, baseline_py_lowest, x_delta_py, ) else: F = "Null" G = "Null" else: # 知道周期的大概长度 period_approximate_len = int( (peaks_lst[-1] - peaks_lst[0]) / (len(peaks_lst) - 1) ) # # 确定峰值索引 if len(ND) > 0: # 这里需要加条件 不能简单的根据大小来选取极值点 if len(ND_index) > 1: # 2023-12-18 peak = max(ND) f = ND_index[ND.index(peak)] # 第一步 通过x距离约束来筛选peak_index, 确保顺序不变 for i_dsts in range(len(ND_index)): if ND_index[i_dsts] == f: distance_with_last_peak_index = abs( ND_index[i_dsts] - peaks_lst[-1] ) if ( distance_with_last_peak_index < 24 or distance_with_last_peak_index > 208 ): # 2024_10_31 这里采集10s,周期数范围为6-26,对应长度为104-24 continue else: ND_index_remodify_throughx.append(ND_index[i_dsts]) ND_remodify_throughx.append(ND[i_dsts]) else: distance_NDx = abs(ND_index[i_dsts] - f) distance_with_last_peak_index = abs( ND_index[i_dsts] - peaks_lst[-1] ) if ( distance_NDx > 208 or distance_NDx < 24 or distance_with_last_peak_index < 24 or distance_with_last_peak_index > 208 ): # 2024_10_31 这里采集10s,周期数范围为6-26,对应长度为104-24 continue else: ND_index_remodify_throughx.append(ND_index[i_dsts]) ND_remodify_throughx.append(ND[i_dsts]) # 第二步 通过y值的一些约束来筛选真正的peak_index if len(ND_index_remodify_throughx) > 1: for j_dsts in range(len(ND_remodify_throughx)): # peak_rate = ND_remodify_throughx[j_dsts] / peak # 2023-12-29 if len(NX) != 0: if (peak - min(NX)) != 0: peak_rate = abs( (ND_remodify_throughx[j_dsts] - min(NX)) / (peak - min(NX)) ) else: peak_rate = abs(ND_remodify_throughx[j_dsts] / peak) else: peak_rate = abs(ND_remodify_throughx[j_dsts] / peak) if peak_rate > 0.4: # 0.6变0.4 2023——12-25 # writingto_txt('peak_with_max_peak_value_rate_record', peak_rate) ND_index_finall.append(ND_index_remodify_throughx[j_dsts]) ND_finall.append(ND_remodify_throughx[j_dsts]) else: continue else: for j_dsts in range(len(ND_index_remodify_throughx)): peak_values_lst_dsts = [] for k_imtq in range(len(peaks_lst)): peak_values_lst_dsts.append(data_one[peaks_lst[k_imtq]]) mean_peak_values = np.mean(peak_values_lst_dsts) if ( len(NX) != 0 and (mean_peak_values - min(NX)) != 0 ): # 2024-6-14 这里要防止=0,但是我没有进一步优化,可能还有其他情况 peak_rate = abs( (ND_remodify_throughx[j_dsts] - min(NX)) / (mean_peak_values - min(NX)) ) else: peak_rate = abs( ND_remodify_throughx[j_dsts] / mean_peak_values ) if ( peak_rate > 0.30 ): # 这里阈值设置较低,为了把所有正确的点选进去 2023-12-29 这里不应该用二者的绝对值,而是该用二者相对极小值的值 第一次筛选值,阈值稍微高点 ND_index_finall.append(ND_index_remodify_throughx[j_dsts]) # writingto_txt('peak_with_max_peak_value_rate_record', peak_rate) ND_finall.append(ND_remodify_throughx[j_dsts]) need_whether_num = 0 if len(ND_index_finall) != 0: for j_dst in range(len(ND_index_finall)): period_len_compute = ND_index_finall[j_dst] - peaks_lst[-1] # if peaks_lst[-1] + period_approximate_len + 65< 625: #2024-1-19 后面看看效果 if ( peaks_lst[-1] + period_approximate_len + 25 < 1250 ): # 2024-1-19 后面看看效果 period_len_rate = abs( 1 - period_len_compute / period_approximate_len ) # 20241107 增加为10s数据后,这里也是一个修改点,因为周期变短了,导致分母变小,变化量占比变大,所以这里要修改变小,周期得分,离周期长度最近的得分最高 else: period_len_rate = 0.05 # if period_len_rate < 0.27: if ( period_len_rate < 0.04 ): # 20241107 增加为10s数据后,这里也是一个修改点,因为周期变短了,导致分母变小,变化量占比变大,所以这里要修改变小 need_whether_num += 1 x_distance_khjq = abs( period_len_compute - period_approximate_len ) # 这里不能仅凭x距离判断出点,还得综合y值来看 # if ND_index_finall[j_dst] < (peaks_lst[-1] + 50):# if ND_index_finall[j_dst] < ( peaks_lst[-1] + 0.8 * period_approximate_len ): # 20241107 增加为10s数据后,这里也是一个修改点,加50显然不正确,这里最好加一个可以变化的量 x_distance_khjq = 999 x_distance_all_accum_compute.append(x_distance_khjq) period_len_rate_accum_compute.append(period_len_rate) # if min(period_len_rate_accum_compute) < 0.27: # 2023-12-29 # 2024-1-3 这里,由于第一个周期点没选对,导致周期长度错误,进一步导致正确周期点计算得分不在02范围之内,无法纠正周期 if ( min(period_len_rate_accum_compute) < 0.04 ): # #20241107 增加为10s数据后,这里也是一个修改点,因为周期变短了,导致分母变小,变化量占比变大,所以这里要修改变小 if need_whether_num > 1: F, F_value, G, x_delta_py, baseline_py_lowest = ( get_correct_peak_index( data_one, ND_index_finall, NX_index, ND_finall, NX, x_distance_all_accum_compute, peaks_lst, period_points, period_approximate_len, ) ) else: # baseline_py_peak =0.5* abs(data_one[peaks_lst[-1]] - data_one[peaks_lst[-2]]) + 0.5*() #这里并不能有效处理基线漂移 index_num_peak = period_len_rate_accum_compute.index( min(period_len_rate_accum_compute) ) x_delta_py = ( 0.8 * x_distance_all_accum_compute[index_num_peak] ) F_first_jgba = ND_index_finall[index_num_peak] F_value_first_jgba = ND_finall[index_num_peak] baseline_py_peak = 0.4 * abs( data_one[peaks_lst[-1]] - data_one[peaks_lst[-2]] ) + 0.6 * abs(F_value_first_jgba - data_one[peaks_lst[-1]]) # writingto_txt('峰值距离波动', period_len_rate_accum_compute[index_num_peak]) difference_period_with_ND = ( F_value_first_jgba - data_one[period_points[-1]] ) peak_value_jgjz = ( data_one[peaks_lst[-1]] - data_one[period_points[-1]] ) if F_value_first_jgba > data_one[peaks_lst[-1]]: peak_value_jgjz += baseline_py_peak else: # if difference_period_with_ND !=0: # chaju_big = (peak_value_jgjz - difference_period_with_ND)/ difference_period_with_ND # if chaju_big >1.2: # difference_period_with_ND += 0 # # else: # difference_period_with_ND += baseline_py_peak # # else: difference_period_with_ND += baseline_py_peak if peak_value_jgjz != 0: minus_period_jgnq = abs( 1 - difference_period_with_ND / peak_value_jgjz ) if minus_period_jgnq > 1: minus_period_jgnq = 0.4 else: minus_period_jgnq = 0.4 if ( minus_period_jgnq > 0.40 ): # 2023-12-27 触发周期保护机制,利用周期长度的稳定性来确保周期是否正确 # writingto_txt('相对峰值占比', minus_period_jgnq) # F, F_value, peak_need_delete_element, period_need_delete_element = pan_duan_zhou_qi_zhengque(data_one, ND_index_finall, ND_finall, peaks_lst, period_points) ( F, G, peak_need_delete_element, period_need_delete_element, jishu_num, ) = jiuzheng_zhouqi_1( data_one, ND_index_finall, ND_finall, NX_index, NX, peaks_lst, period_points, ) else: # F, F_value,_ = ND_len_zero_select_F_peak_index_dw(data_one, ND_finall,ND_index_finall,peaks_lst) # 这里得对ND_index_finall 进行筛选,直接传的不一定合格 F, F_value = F_first_jgba, F_value_first_jgba G, baseline_py_lowest = general_select_NX_index( NX, NX_index, F, F_value, peaks_lst, period_points, peak_need_delete_element, period_need_delete_element, baseline_py_lowest, x_delta_py, ) # writingto_txt('相对峰值占比', minus_period_jgnq) # elif min(x_distance_all_accum_compute) < 37 and peaks_lst[-1] + period_approximate_len + int(0.14*period_approximate_len)< 625: # 2024-1-8 为了提升正确率 允许有40距离的周期突变 #2024-1-13 这里设置过大容易把最后一些不是峰值的极大值概括进去 elif ( min(x_distance_all_accum_compute) < 0.6 * period_approximate_len and peaks_lst[-1] + period_approximate_len + int(0.14 * period_approximate_len) < 1250 ): # #20241107 增加为10s数据后,这里也是一个修改点,这个0.14不知道修不修改 index_num_peak_ohhh = x_distance_all_accum_compute.index( min(x_distance_all_accum_compute) ) F_first_jgba = ND_index_finall[index_num_peak_ohhh] F_value_first_jgba = ND_finall[index_num_peak_ohhh] F, F_value = F_first_jgba, F_value_first_jgba x_delta_py = ( 0.8 * x_distance_all_accum_compute[index_num_peak_ohhh] ) G, baseline_py_lowest = general_select_NX_index( NX, NX_index, F, F_value, peaks_lst, period_points, peak_need_delete_element, period_need_delete_element, baseline_py_lowest, x_delta_py, ) else: if peaks_lst[-1] + period_approximate_len + 25 < 1250: ( F, G, peak_need_delete_element, period_need_delete_element, jishu_num, ) = jiuzheng_zhouqi_1( data_one, ND_index_finall, ND_finall, NX_index, NX, peaks_lst, period_points, ) else: F = "Null" if len(NX_index) != 0: last_period_len_rate_accum_compute = [] period_penult_index = period_points[-1] for m_dsts_last_period in range(len(NX_index)): last_period_length = ( NX_index[m_dsts_last_period] - period_penult_index ) last_period_len_rate = abs( 1 - last_period_length / period_approximate_len ) last_period_len_rate_accum_compute.append( last_period_len_rate ) if min(last_period_len_rate_accum_compute) < 0.2: last_period_index = ( last_period_len_rate_accum_compute.index( min(last_period_len_rate_accum_compute) ) ) G = NX_index[last_period_index] min_num_jhbf = NX.index(min(NX)) G_nnbj = NX_index[min_num_jhbf] if G != G_nnbj: # 2024-1-19 zheli 有问题 if ( peaks_lst[-1] + period_approximate_len + 25 < 1250 ): G = G_nnbj else: distance_period_less_htbq = ( period_approximate_len - ( NX_index[last_period_index] - period_penult_index ) ) if ( NX_index[last_period_index] > 1235 and distance_period_less_htbq > 8 ): G = "Null" else: G = G else: # 2024-1-21 例子4787 # 2024_1_22 例子 3795 penult_period_distance_dnbq = ( period_penult_index - period_points[-2] ) distance_period_less_htbq = ( penult_period_distance_dnbq - ( NX_index[last_period_index] - period_penult_index ) ) if ( NX_index[last_period_index] > 1235 and distance_period_less_htbq > 11 ): G = "Null" else: G = G else: G = "Null" else: G = "Null" else: F = "Null" if len(NX_index) != 0: last_period_len_rate_accum_compute = [] period_penult_index = period_points[-1] for m_dsts_last_period in range(len(NX_index)): last_period_length = ( NX_index[m_dsts_last_period] - period_penult_index ) last_period_len_rate = abs( 1 - last_period_length / period_approximate_len ) last_period_len_rate_accum_compute.append( last_period_len_rate ) if min(last_period_len_rate_accum_compute) < 0.2: last_period_index = ( last_period_len_rate_accum_compute.index( min(last_period_len_rate_accum_compute) ) ) last_distance_period_hjqn = period_approximate_len - ( NX_index[last_period_index] - period_penult_index ) if last_distance_period_hjqn < 8: G = NX_index[last_period_index] else: G = "Null" else: G = 1249 F = 1249 # 等于624的原因是 峰值后的极小值不是周期点,所以赋值624 else: F = 1249 G = 1249 else: # 2023-12-23 这里有问题 仅通过选第一个会导致峰值选错,应该结合前面选的峰值 # 2024_8_18 这个周期正确率要高一些,改代码得多跑数据多看看了,不然不如不改 peak = max(ND) f = ND_index[ND.index(peak)] # 第一步 通过x距离约束来筛选peak_index, 确保顺序不变 for i_dsts in range(len(ND_index)): if ND_index[i_dsts] == f: distance_with_last_peak_index = abs( ND_index[i_dsts] - peaks_lst[-1] ) if ( distance_with_last_peak_index < 24 or distance_with_last_peak_index > 208 ): # 2024_10_31 这里采集10s,周期数范围为6-26,对应长度为104-24 continue else: ND_index_remodify_throughx.append(ND_index[i_dsts]) ND_remodify_throughx.append(ND[i_dsts]) else: distance_NDx = abs(ND_index[i_dsts] - f) distance_with_last_peak_index = abs( ND_index[i_dsts] - peaks_lst[-1] ) if ( distance_NDx > 208 or distance_NDx < 24 or distance_with_last_peak_index < 24 or distance_with_last_peak_index > 208 ): # 2024_10_31 这里采集10s,周期数范围为6-26,对应长度为104-24 continue else: ND_index_remodify_throughx.append(ND_index[i_dsts]) ND_remodify_throughx.append(ND[i_dsts]) # 第二步 通过y值的一些约束来筛选真正的peak_index for j_dsts in range(len(ND_remodify_throughx)): # peak_rate = ND_remodify_throughx[j_dsts] / peak # 2023-12-29 if len(NX) != 0: if (peak - min(NX)) != 0: peak_rate = abs( (ND_remodify_throughx[j_dsts] - min(NX)) / (peak - min(NX)) ) else: peak_rate = abs(ND_remodify_throughx[j_dsts] / peak) else: peak_rate = abs(ND_remodify_throughx[j_dsts] / peak) if peak_rate > 0.4: # 0.6变0.4 2023——12-25 # writingto_txt('peak_with_max_peak_value_rate_record', peak_rate) ND_index_finall.append(ND_index_remodify_throughx[j_dsts]) ND_finall.append(ND_remodify_throughx[j_dsts]) else: continue if len(ND_index_finall) != 0: F, F_value, x_delta_py = ND_len_zero_select_F_peak_index_dw( data_one, ND_finall, ND_index_finall, peaks_lst ) else: F, F_value, x_delta_py = "Null", None, 0 G, baseline_py_lowest = general_select_NX_index( NX, NX_index, F, F_value, peaks_lst, period_points, peak_need_delete_element, period_need_delete_element, baseline_py_lowest, x_delta_py, ) # 2024_7_9 这里对ND进行筛选,之后再进行下一步 # f = peaks_lst[-1] # peak = data_one[f] # # # 第一步 通过x距离约束来筛选peak_index, 确保顺序不变 # for i_dsts in range(len(ND_index)): # distance_with_last_peak_index = abs(ND_index[i_dsts] - peaks_lst[-1]) # min_len = int(0.5 * period_approximate_len) # if distance_with_last_peak_index < min_len or distance_with_last_peak_index > 208: # continue # else: # ND_index_remodify_throughx.append(ND_index[i_dsts]) # ND_remodify_throughx.append(ND[i_dsts]) # # # 第二步 通过y值的一些约束来筛选真正的peak_index # # for j_dsts in range(len(ND_remodify_throughx)): # # peak_rate = ND_remodify_throughx[j_dsts] / peak # # 2023-12-29 # if len(NX) != 0: # # if (peak - min(NX)) != 0: # peak_rate = abs((ND_remodify_throughx[j_dsts] - min(NX)) / (peak - min(NX))) # # else: # peak_rate = abs(ND_remodify_throughx[j_dsts] / peak) # # else: # peak_rate = abs(ND_remodify_throughx[j_dsts] / peak) # if peak_rate > 0.4: # 0.6变0.4 2023——12-25 # # writingto_txt('peak_with_max_peak_value_rate_record', peak_rate) # ND_index_finall.append(ND_index_remodify_throughx[j_dsts]) # ND_finall.append(ND_remodify_throughx[j_dsts]) # else: # continue # # if len(ND_index_finall) != 0: # F, F_value, x_delta_py = ND_len_zero_select_F_peak_index_dw(data_one, ND_finall, ND_index_finall, # peaks_lst) # # else: # F, F_value, x_delta_py = 'Null', None, 0 # # G, baseline_py_lowest = general_select_NX_index(NX, NX_index, F, F_value, peaks_lst, period_points, # peak_need_delete_element, period_need_delete_element, # baseline_py_lowest, x_delta_py) else: F = "Null" if len(NX_index) != 0: last_period_len_rate_accum_compute = [] period_penult_index = period_points[-1] for m_dsts_last_period in range(len(NX_index)): last_period_length = ( NX_index[m_dsts_last_period] - period_penult_index ) last_period_len_rate = abs( 1 - last_period_length / period_approximate_len ) last_period_len_rate_accum_compute.append(last_period_len_rate) if min(last_period_len_rate_accum_compute) < 0.2: last_period_index = last_period_len_rate_accum_compute.index( min(last_period_len_rate_accum_compute) ) G = NX_index[last_period_index] else: G = 1249 F = 1249 # 等于624的原因是 峰值后的极小值不是周期点,所以赋值624 else: F = 1249 G = 1249 return ( F, G, peak_need_delete_element, period_need_delete_element, baseline_py_lowest, jishu_num, ) 将以上代码转为 c#实现,
09-21
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值