很喜欢ONE一个每天推送的一幅画和一段文字,有时候经常看到图片后右键另存为,看到PC端只有网页版ONE,所以就用VB写了一个简单的可执行文件,功能保留了最基本的一幅图和一段文字,对于不喜欢看长篇文字的我来说,足矣。
思路
这是获取源码的网站:
可以看到我们要获取的内容:
获取网站的源码,可以看到:
现在要做的,分为下面几个步骤:
1、获取当前的期刊号,比如2015年2月10日是856刊。
2、获取网页图片的源地址:"
3、获取网页源代码,利用代码标签搜索得到标题、作者、内容。
4、构建框体,设计UI,,构建程序应该用什么功能。
5、代码优化,封装打包成EXE。
有了思路,我们可以进行下一步。
首先我们要构建一个框体,用了2个主框架,Form1和Form2,16个Label,3个Textbox,3个Image和 Picturebox。
有了框架和UI,可以进行下一步啦~
获取刊期号:
Dim day, month, daysmonth = Format(Date, "mm")day = Format(Date, "dd")Select Case monthCase 2days = day + 31Case 3days = day + 59Case 4days = day + 90Case 5days = day + 120Case 6days = day + 151Case 7days = day + 181Case 8days = day + 212Case 9days = day + 243Case 10days = day + 273Case 11days = day + 304Case 12days = day + 334End Selectdatee = 815 + days
获取网络源码:
Function getHTTPPage(url) '获取网站源码On Error Resume NextDim httpSet http = CreateObject("MSXML2.XMLHTTP")http.Open "GET", url, FalsegetHTTPPage = http.Send()If http.ReadyState <> 4 ThenDebug.Print "无法连接服务器"getHTTPPage = "无法连接服务器"Exit FunctionEnd IfgetHTTPPage = BytesToBstr(http.responseBody, "GB2312")Set http = NothingEnd FunctionFunction BytesToBstr(body, Cset) '转码Dim objstreamSet objstream = CreateObject("adodb.stream")objstream.Type = 1objstream.Mode = 3objstream.Openobjstream.Write bodyobjstream.position = 0objstream.Type = 2objstream.Charset = CsetBytesToBstr = objstream.ReadTextobjstream.CloseSet objstream = NothingEnd Function获取特定字符的源码:
Function GetByDiv(ByVal code As String, ByVal divBegin As String, divEnd As String) '获取分隔符所夹的内容Dim lgStart As LongDim lens As LongDim lgEnd As Longlens = Len(divBegin)lgStart = InStr(1, code, divBegin) + CLng(lens)lgEnd = InStr(lgStart, code, divEnd)GetByDiv = Mid(code, lgStart, lgEnd – lgStart)End Function在这里,我们将2次获取一个内容,比如获取内容我们先获取:><p>那些可以轻而易举伤害我们的人,那些一再以痛楚和挫败试探我们的人,那些举起旗子引导我们走入迷途深林的人,那些在削弱我们的力量的人,那些让我们深深触动和粉碎自我的人,他们才是生命中最有力量的老师。by 安妮宝贝</p>
在获取><之间的内容:那些可以轻而易举伤害我们的人,那些一再以痛楚和挫败试探我们的人,那些举起旗子引导我们走入迷途深林的人,那些在削弱我们的力量的人,那些让我们深深触动和粉碎自我的人,他们才是生命中最有力量的老师。by 安妮宝贝
获取作者,标题的方法类似。
有了网页源码,我们可以构建一个函数来获取图片和文字:
在开始时却总是不厌其烦地渗透入生活的缝隙,