找到
8
篇与
程技
相关的结果
-
VBA网抓上海期货交易所数据 代码 Sub get_shfe_price_XMLHTTP60_NoDTS() Dim nowdate As String Dim yestoday As String Dim deliverymonthdate As String Dim URL As String Dim http As Object ' MSXML2.XMLHTTP60 对象 Dim sourcecode As String Dim dom As Object ' DOM解析对象 Dim tableNodes As Object ' 表格节点集合 Dim tableNode As Object ' 单个表格节点 Dim trNodes As Object ' 行节点集合 Dim trNode As Object ' 单个行节点 Dim tdNodes As Object ' 单元格节点集合 Dim tdNode As Object ' 单个单元格节点 Dim xpathQuery As String ' XPath查询语句 Dim rowIndex As Integer ' 行索引 Dim colIndex As Integer ' 列索引 Dim dataDate As String Dim cufClosingPrice As Single Dim znfClosingPrice As Single Dim pbfClosingPrice As Single Dim agfClosingPrice As Single ' 1. 生成日期和URL deliverymonthdate = Format(Date + 60, "yymm") nowdate = Format(Date, "yyyymmdd") yestoday = Format(Date - 1, "yyyymmdd") URL = "https://www.shfe.com.cn/data/tradedata/future/dailydata/kx" & yestoday & ".dat" Debug.Print "请求URL:" & URL Debug.Print "请求日期:" & yestoday ' 2. 初始化MSXML2.XMLHTTP60对象 On Error Resume Next Set http = CreateObject("MSXML2.XMLHTTP.6.0") On Error GoTo 0 If http Is Nothing Then MsgBox "无法创建XMLHTTP60对象!请安装MSXML 6.0组件。", vbCritical Exit Sub End If ' 3. 发送HTTP请求 With http .Open "GET", URL, False On Error Resume Next .setOption 2, 13056 On Error GoTo 0 .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" .setRequestHeader "Accept", "application/json, text/javascript, */*; q=0.01" ' 修改为接受JSON .setRequestHeader "Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8" .setRequestHeader "Referer", "https://www.shfe.com.cn/" .send If .Status <> 200 Then MsgBox "请求失败!状态码:" & .Status & vbCrLf & "响应文本:" & Left(.responseText, 500), vbCritical Set http = Nothing Exit Sub End If sourcecode = .responseText End With Set http = Nothing Debug.Print "页面源码长度:" & Len(sourcecode) Application.Wait Now + TimeValue("00:00:01") ' 4. 检查数据 If Len(sourcecode) = 0 Then MsgBox "未获取到数据!", vbExclamation Exit Sub End If Set oDom = CreateObject("htmlfile") Set oWindow = oDom.parentWindow ' 修正JSON解析代码 On Error Resume Next oWindow.execScript "var jsonString = " & sourcecode & "; var s = JSON.parse(jsonString);" oWindow.execScript "var s = " & sourcecode Dim arrLength As Integer arrLength = oWindow.eval("s.o_curinstrument.length") Debug.Print "找到 " & arrLength & " 个品种:" Dim i As Integer For i = 0 To arrLength - 1 ' 检查当前元素是否符合条件 Dim currentProductId As String Dim currentDeliveryMonth As String currentProductId = oWindow.eval("s.o_curinstrument[" & i & "].PRODUCTID") currentDeliveryMonth = oWindow.eval("s.o_curinstrument[" & i & "].DELIVERYMONTH") ' 如果找到匹配的数据 If currentProductId = "cu_f" And currentDeliveryMonth = deliverymonthdate Then cufClosingPrice = oWindow.eval("s.o_curinstrument[" & i & "].CLOSEPRICE") End If If currentProductId = "pb_f" And currentDeliveryMonth = deliverymonthdate Then pbfClosingPrice = oWindow.eval("s.o_curinstrument[" & i & "].CLOSEPRICE") End If If currentProductId = "zn_f" And currentDeliveryMonth = deliverymonthdate Then znfClosingPrice = oWindow.eval("s.o_curinstrument[" & i & "].CLOSEPRICE") End If If currentProductId = "ag_f" And currentDeliveryMonth = deliverymonthdate Then agfClosingPrice = oWindow.eval("s.o_curinstrument[" & i & "].CLOSEPRICE") End If Next i Debug.Print "铜收盘价: " & cufClosingPrice Debug.Print "铅收盘价: " & pbfClosingPrice Debug.Print "锌收盘价: " & znfClosingPrice Debug.Print "银收盘价: " & agfClosingPrice ' 释放对象 Set records = Nothing Set json = Nothing Set tdNodes = Nothing Set trNodes = Nothing Set tableNodes = Nothing Set dom = Nothing End Sub -
VBA网抓上海黄金交易所 简 Sub get_sge_price_XMLHTTP60_NoDTS() Dim nowdate As String Dim yestoday As String Dim URL As String Dim http As Object ' MSXML2.XMLHTTP60 对象 Dim sourcecode As String Dim dom As Object ' DOM解析对象 Dim tableNodes As Object ' 表格节点集合 Dim tableNode As Object ' 单个表格节点 Dim trNodes As Object ' 行节点集合 Dim trNode As Object ' 单个行节点 Dim tdNodes As Object ' 单元格节点集合 Dim tdNode As Object ' 单个单元格节点 Dim xpathQuery As String ' XPath查询语句 Dim rowIndex As Integer ' 行索引 Dim colIndex As Integer ' 列索引 Dim dataDate As String ' Dim contract As String ' Dim openingPrice As Single ' Dim highestPrice As Single ' Dim lowestPrice As Single Dim autdClosingPrice As Single Dim agtdClosingPrice As Single ' Dim riseAndFall As Single ' Dim priceRange As Single ' Dim weightedAveragePrice As Single ' Dim tradingVolume As Single ' Dim tradingAmount As Single ' 1. 生成日期和URL(保留原逻辑) nowdate = Format(Date, "yyyy-mm-dd") yestoday = Format(Date - 1, "yyyy-mm-dd") URL = "https://www.sge.com.cn/sjzx/quotation_daily_new?start_date=" & yestoday & "&end_date=" & yestoday Debug.Print "请求URL:" & URL Debug.Print "请求日期:" & yestoday ' 2. 初始化MSXML2.XMLHTTP60对象(补充错误处理) On Error Resume Next Set http = CreateObject("MSXML2.XMLHTTP.6.0") On Error GoTo 0 If http Is Nothing Then MsgBox "无法创建XMLHTTP60对象!请安装MSXML 6.0组件。", vbCritical Exit Sub End If ' 3. 发送HTTP请求(补充SSL忽略配置) With http .Open "GET", URL, False On Error Resume Next .setOption 2, 13056 ' 仅XMLHTTP60支持,失败不报错 On Error GoTo 0 .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" .setRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" .setRequestHeader "Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8" .setRequestHeader "Referer", "https://www.sge.com.cn/" .send If .Status <> 200 Then MsgBox "请求失败!状态码:" & .Status & vbCrLf & "响应文本:" & Left(.responseText, 500), vbCritical Set http = Nothing Exit Sub End If sourcecode = .responseText End With Set http = Nothing Debug.Print "页面源码长度:" & Len(sourcecode) If InStr(sourcecode, "daily_new_table") = 0 Then MsgBox "获取的源码中无'daily_new_table',可能页面结构变更!", vbExclamation Exit Sub End If ' 4. 初始化HTMLFile解析对象(补充错误处理) On Error Resume Next Set dom = CreateObject("HTMLFile") On Error GoTo 0 If dom Is Nothing Then MsgBox "无法创建HTMLFile解析对象!", vbCritical Exit Sub End If ' 5. 解析HTML源码(修正解析逻辑) dom.write "<!DOCTYPE html><html><body>" & sourcecode & "</body></html>" dom.Close Application.Wait Now + TimeValue("00:00:01") ' 短暂延迟确保解析完成 Debug.Print "使用HTMLFile引擎解析(自动禁用DTS)" ' 定位目标表格(class+关键词兜底) Set tableNodes = dom.getElementsByClassName("daily_new_table") If tableNodes.Length = 0 Then Debug.Print "按class未找到,尝试按关键词定位表格..." Set tableNodes = dom.getElementsByTagName("table") For Each tableNode In tableNodes If InStr(tableNode.innerText, "开盘价") > 0 And InStr(tableNode.innerText, "收盘价") > 0 Then Set tableNodes = dom.createDocumentFragment tableNodes.appendChild tableNode Exit For End If Next tableNode If tableNodes.Length = 0 Then MsgBox "未找到目标表格!可能页面结构已变更。", vbExclamation Set dom = Nothing Exit Sub End If End If ' 取第一个目标表格的tbody Set tableNode = tableNodes(0) Set tableNodes = tableNode.getElementsByTagName("tbody") MsgBox tableNodes.Length ' 显示tbody数量 ' 统计数据行数并遍历所有行和单元格(核心新增逻辑) rowIndex = 0 If tableNodes.Length > 0 Then Set trNodes = tableNodes(0).getElementsByTagName("tr") rowIndex = trNodes.Length ' 新增:遍历所有行(trNode)和对应单元格(tdNode) Debug.Print vbCrLf & "=== 表格数据详情 ===" For Each trNode In trNodes Set tdNodes = trNode.getElementsByTagName("td") ' 获取当前行的所有单元格 colIndex = 0 For i = 1 To 5 Select Case Trim(tdNodes(i).innerText) Case "Au(T+D)" dataDate = tdNodes(0).innerText autdClosingPrice = tdNodes(5).innerText Case "Ag(T+D)" agtdClosingPrice = tdNodes(5).innerText End Select Next i ' 遍历当前行的单元格并打印到立即窗口 Next trNode End If Debug.Print autdClosingPrice Debug.Print agtdClosingPrice ' 释放对象 Set tdNodes = Nothing Set trNodes = Nothing Set tableNodes = Nothing Set dom = Nothing MsgBox "数据提取完成!共提取 " & rowIndex & " 行数据,请按Ctrl+G打开【立即窗口】查看详情。", vbInformation End Sub原 Sub get_sge_price_XMLHTTP60_NoDTS() Dim nowdate As String Dim yestoday As String Dim URL As String Dim http As Object ' MSXML2.XMLHTTP60 对象 Dim sourcecode As String Dim dom As Object ' DOM解析对象 Dim tableNodes As Object ' 表格节点集合 Dim tableNode As Object ' 单个表格节点 Dim trNodes As Object ' 行节点集合 Dim trNode As Object ' 单个行节点 Dim tdNodes As Object ' 单元格节点集合 Dim tdNode As Object ' 单个单元格节点 Dim xpathQuery As String ' XPath查询语句 Dim rowIndex As Integer ' 行索引 Dim colIndex As Integer ' 列索引 Dim dataDate As String ' Dim contract As String ' Dim openingPrice As Single ' Dim highestPrice As Single ' Dim lowestPrice As Single Dim autdClosingPrice As Single ' Dim riseAndFall As Single ' Dim priceRange As Single ' Dim weightedAveragePrice As Single ' Dim tradingVolume As Single ' Dim tradingAmount As Single ' 1. 生成日期和URL(保留原逻辑) nowdate = Format(Date, "yyyy-mm-dd") yestoday = Format(Date - 1, "yyyy-mm-dd") URL = "https://www.sge.com.cn/sjzx/quotation_daily_new?start_date=" & yestoday & "&end_date=" & yestoday Debug.Print "请求URL:" & URL Debug.Print "请求日期:" & yestoday ' 2. 初始化MSXML2.XMLHTTP60对象(补充错误处理) On Error Resume Next Set http = CreateObject("MSXML2.XMLHTTP.6.0") On Error GoTo 0 If http Is Nothing Then MsgBox "无法创建XMLHTTP60对象!请安装MSXML 6.0组件。", vbCritical Exit Sub End If ' 3. 发送HTTP请求(补充SSL忽略配置) With http .Open "GET", URL, False On Error Resume Next .setOption 2, 13056 ' 仅XMLHTTP60支持,失败不报错 On Error GoTo 0 .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" .setRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" .setRequestHeader "Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8" .setRequestHeader "Referer", "https://www.sge.com.cn/" .send If .Status <> 200 Then MsgBox "请求失败!状态码:" & .Status & vbCrLf & "响应文本:" & Left(.responseText, 500), vbCritical Set http = Nothing Exit Sub End If sourcecode = .responseText End With Set http = Nothing Debug.Print "页面源码长度:" & Len(sourcecode) If InStr(sourcecode, "daily_new_table") = 0 Then MsgBox "获取的源码中无'daily_new_table',可能页面结构变更!", vbExclamation Exit Sub End If ' 4. 初始化HTMLFile解析对象(补充错误处理) On Error Resume Next Set dom = CreateObject("HTMLFile") On Error GoTo 0 If dom Is Nothing Then MsgBox "无法创建HTMLFile解析对象!", vbCritical Exit Sub End If ' 5. 解析HTML源码(修正解析逻辑) dom.write "<!DOCTYPE html><html><body>" & sourcecode & "</body></html>" dom.Close Application.Wait Now + TimeValue("00:00:01") ' 短暂延迟确保解析完成 Debug.Print "使用HTMLFile引擎解析(自动禁用DTS)" ' 定位目标表格(class+关键词兜底) Set tableNodes = dom.getElementsByClassName("daily_new_table") If tableNodes.Length = 0 Then Debug.Print "按class未找到,尝试按关键词定位表格..." Set tableNodes = dom.getElementsByTagName("table") For Each tableNode In tableNodes If InStr(tableNode.innerText, "开盘价") > 0 And InStr(tableNode.innerText, "收盘价") > 0 Then Set tableNodes = dom.createDocumentFragment tableNodes.appendChild tableNode Exit For End If Next tableNode If tableNodes.Length = 0 Then MsgBox "未找到目标表格!可能页面结构已变更。", vbExclamation Set dom = Nothing Exit Sub End If End If ' 取第一个目标表格的tbody Set tableNode = tableNodes(0) Set tableNodes = tableNode.getElementsByTagName("tbody") MsgBox tableNodes.Length ' 显示tbody数量 ' 统计数据行数并遍历所有行和单元格(核心新增逻辑) rowIndex = 0 If tableNodes.Length > 0 Then Set trNodes = tableNodes(0).getElementsByTagName("tr") rowIndex = trNodes.Length ' 新增:遍历所有行(trNode)和对应单元格(tdNode) Debug.Print vbCrLf & "=== 表格数据详情 ===" For Each trNode In trNodes Set tdNodes = trNode.getElementsByTagName("td") ' 获取当前行的所有单元格 colIndex = 0 Debug.Print "第 " & (rowIndex - trNodes.Length + 1) & " 行:" ' 行号输出 ' 遍历当前行的单元格并打印到立即窗口 For Each tdNode In tdNodes colIndex = colIndex + 1 Debug.Print " 列" & colIndex & ":" & Trim(tdNode.innerText) Next tdNode dataDate = Trim(tdNodes(0).innerText) Next trNode End If ' 释放对象 Set tdNodes = Nothing Set trNodes = Nothing Set tableNodes = Nothing Set dom = Nothing MsgBox "数据提取完成!共提取 " & rowIndex & " 行数据,请按Ctrl+G打开【立即窗口】查看详情。", vbInformation End Sub -
Toboyoo Sales Dashboard 当一个 Power BI 报告充满了赛博朋克的美学,用 VR 和元宇宙的元素包裹着数据,你首先会想到什么? “惊艳”、“炫酷”、“技术大神”? 没错,这些都是第五届 Power BI 可视化大赛中国区冠军作品 《Toboyoo Sales Dashboard》 给人的第一印象。但如果我们仅仅停留在视觉的震撼,那就错过了这幅作品真正的“杀手锏”。 今天,就让我们撕开其“赛博朋克”的炫酷外壳,深入其分析的内核,看看一个冠军级的 BI 报告,是如何将复杂的业务问题,拆解为清晰、深刻、可执行的数据洞察的。 设计是外壳,商业分析才是灵魂 作品选择了一个极具前瞻性的主题,赛博朋克风。这并非单纯的炫技,而是作者深思熟虑后的战略选择。 营造沉浸感: 赛博朋克风格的深色背景、流光溢彩的霓虹线条、充满科技感的图标和动效,共同构建了一个“数字驾驶舱”的氛围。这让使用者在打开报告的瞬间,就能从繁杂的日常工作中抽离,沉浸到对数据的探索中。 隐喻未来: “赛博朋克”本身就代表着对未来的探索。这与 BI 的终极目标,“洞察先机,预测未来”不谋而合。设计风格与作品内核形成了完美的呼应。 统一视觉语言: 从首页到详情页,所有的视觉元素,如图标、配色、字体、图表样式,都严格遵循了这一设计语言,使得整个作品高度统一、专业且极具辨识度。 整个作品的核心,是为企业经营者打造一个可以实时交互的“数字驾驶舱”。接下来,就让我们坐上驾驶位,逐一启动仪表盘上的每一个功能模块。 Home - 驾驶舱概览 这是整个驾驶舱的入口。它用最显眼的方式,呈现了企业经营者最关心的四大核心指标(KPIs):净销售额、毛利率、门店数 和 SKU 数。每一个 KPI 卡片都设计成了富有科技感的悬浮模块,用简洁的数字和同比箭头,让管理者在 30 秒内就能对业务健康度有一个宏观的判断。这完美诠释了优秀仪表板的原则:信息降噪,要事优先。 多维度下钻分析,常规视角下的视觉创新 在对全局有所了解后,驾驶舱提供了从不同业务视角进行下钻探索的模块。这部分最能体现作者作为“最佳可视化”得主的功力,即便是常规分析,也能做出新意。 Geo(地理分析): 核心是回答“我们的钱从哪里来?”。视觉上,一个巨大的、富有光泽的 3D 地球仪占据了 C 位,不同区域的销售表现用深浅不一的颜色渲染,极具视觉冲击力。右侧的条形图和散点图则作为补充,清晰、直观。 Product(产品分析): 核心是回答“我们该卖什么?”。最亮眼的设计是顶部的图片式导航栏,用户可以点击“电脑”、“相机”等具象化的图标进行品类切换,比传统的下拉菜单有趣得多。下方的分解树,则清晰地展示了产品层级关系。 Store(门店分析): 核心是回答“哪些门店在 C 位?”。左侧是门店类型的筛选,中间是 Mapbox 的门店分布地图,右侧则创造性地使用了条形进度图来展示各门店的目标达成情况,一目了然。 MFG(制造商分析): 核心是回答“谁是我们的最佳拍档?”。作者在这里放弃了传统的条形图,大胆地使用了气泡图和弦图。中央巨大的气泡代表核心供应商,周围的小气泡是次要供应商,大小代表销售额,非常直观。右侧的弦图则精妙地展示了供应商与产品品类之间的复杂供货关系。 三大硬核高级分析模块 如果说前面的页面是“看现状”,那么接下来的三个模块,则是“探本质、见未来”,也是这幅作品真正的封神之处。在这里,可视化成为了简化复杂模型的利器。 OG(有机增长分析),诊断增长的“含金量” 本页面旨在回答“增长是否健康?”。视觉上,作者将复杂的有机增长公式(OG = RIG + Pricing)直接呈现在页面顶部,用一个简洁的面积图展示了三者的关系。右侧的两个散点图,则分别从“产品”和“门店”两个维度,将RIG影响与Pricing影响进行交叉分析,帮助管理者快速定位增长驱动的关键因素。 Quads(四象限分析),指明资源投入的“主战场” 本页面旨在回答“资源该投给谁?”。作者将经典的“二八法则”可视化为四个色彩分明的信息看板,每个看板清晰地展示了该象限的销售额、利润、客单价等核心信息。左侧的定义区和下方的行动计划区,则用图文并茂的方式,让管理者不仅知道“是什么”,更知道“该怎么做”。 Discount(折扣分析),科学规划“营销预算” 本页面旨在回答“营销预算怎么花才科学?”。视觉上,两个带滑块的交互式曲线图是核心。管理者只需拖动“目标销售额”的滑块,右侧的预算曲线就会实时变化,直观地展示出达成目标所需的“理想折扣预算”范围。这是将复杂的回归模型,用最简单直接的可视化交互呈现出来的典范。 我们与冠军的差距,到底在哪里? 再次回顾这幅冠军作品,我们可以得出结论:“第五届 Power BI 可视化大赛冠军”颁给它,不仅仅因为其炫酷的外表,更是因为它做到了设计的“形”与分析的“神”的完美统一。 冠军选手思考的,不是“这个图表好不好看”,而是“这个图表能否最高效、最准确地传递我想表达的业务洞察”。他将经典的商业分析框架,与前沿的视觉设计语言、Power BI 的工具能力完美结合,最终打造出的,已经不是一个简单的“报表”,而是一个能够与管理者对话、辅助其决策的数字驾驶舱。 这提醒我们,学习 Power BI,技术是基础,但真正的天花板,在于你是否能用视觉的语言,清晰地表达你对业务的深度思考。 希望这次深度的复盘,能为你打开一扇新的大门。 作品截图 图片 图片 图片 图片 图片 图片 图片 图片 图片 图片 图片 图片 图片 图片 图片 图片 图片 图片 图片 内嵌作品 -
python连接各种数据库 python连接sqlite 连接 #!/usr/bin/env python3 # -*- coding: utf-8 -*- import sqlite3 # 连接到SQLite数据库 # 数据库文件是test.db # 如果文件不存在,会自动在当前目录创建: conn = sqlite3.connect("test.db") # 创建一个Cursor: cursor = conn.cursor() # 执行一条SQL语句,创建user表: cursor.execute("create table user (id varchar(20) primary key, name varchar(20))") # 继续执行一条SQL语句,插入一条记录: cursor.execute("insert into user (id, name) values ('2', 'rich')") # 通过rowcount获得插入的行数: print("rowcount =", cursor.rowcount) # 关闭Cursor: cursor.close() # 提交事务: conn.commit() # 关闭Connection: conn.close()查询 # 查询记录: conn = sqlite3.connect("test.db") cursor = conn.cursor() # 执行查询语句: cursor.execute("select * from user where id=?", "1") # 获得查询结果集: values = cursor.fetchall() print(values) cursor.close() conn.close() -
2. 一键科学 教程已经很详细了,请自行摸索,在公众号中小帅一律不回答此类问题 阅读必看:如果你只想要一个一键fq的软件,那本文就可以满足你。不过这些软件免费的用不久且不稳定、付费的又特别贵,作为备用才是最好的选择。想要稳定好用的请看第三篇教程。 WIN端一键fq工具 本文的一键fq工具大部分都是免费的,所以速度自然不会稳定想要稳定好用的请看第三篇教程 1. Vpn-gate-client VpnGate是由日本国立筑波大学研究生院提供的一个学术实验项目,完全免费。 优点: 优点:- 有中文页面。- 可供选择的服务器比较多。- 没有限制、不带广告。- 公益项目、真正免费。 缺点: 缺点:- 网站在中国被封,需要fq才能访问和活动Vpn服务器列表信息。- 稳定性和速度常不太令人满意。 下载地址: 蓝奏云官网 2.Clashr.Auto.Setup 蓝奏云官网 3.蚂蚁 官网:https://b.antss.me 4.蓝灯 官网:https://getlantern.org 5.自由门 下载:门fg799p.zip MAC端一键fq工具 MAC端一键fq工具- Clashr.Auto.Setup: https://github.com/ClashrAuto/Clashr- Auto- Desktop- 昭蚁官网:https://b.aritss.me iOS端一键fq工具 Hotspot破解.ipa Prime(2.2.0).ipa star.ipa Android一键fq工具 12款打包下载【23/10/5号更新】- 提取码:9e7c 自由门 蓝灯(Lantern) 下载地址:蓝灯官网(需翻墙),Github(需翻墙) 蓝灯(Lantern)是一个代理类翻墙工具,分为专业版和免费版 专业版没有流量和速度限制,并且支持多台设备同时连接 专业版只能按年购买,不能按月购买 蓝灯免费版可以免费使用,但每月的流量限制是500MB,流量用完后连接速度会降到很低(100KB/s),看文字内容基本还可以,但图片打开非常慢,就更别提视频了。 更多一键翻墙Vpn 如果需要下载更多Vpn,在以下网站直接搜索:Vpn ApkHome 点击打开:ApkHome官网(网页版) 无需科学上网,无广告,可以直接下载Vpn 图片 APKDownload 点击打开:APKDownload(网页版) 无需科学上网,无广告,可以直接下载Vpn 图片 Aptoide 点击打开:Aptoide(网页版) 需科学上网,无广告,可以直接下载Vpn 图片 图片 一键科学上网VPNProxy:https://oneclick- vpn.cn.aptoide.com/app APKMirror 点击打开:APKMirror(网页版) 需科学上网,无广告,可以直接下载Vpn 图片 观道 点击打开:观道(网页版) 无需科学上网,无广告,可以直接下载Vpn 图片 apkpure 点击打开(被墙):https://m.apkpure.com/ch 需科学上网,可以直接下载Vpn TG频道 破解软件Vpn频道:https://t.me/Mtprotomm