案例说明
官网日志信息提取, 每日统计官网日志信息(主题数,发帖数,用户数),保存word文档
效果展示
案例实现
dim url = "https://forum.uibot.com.cn/"
dim iRet = ""
dim hWeb = ""
// 0,设置定时器
// 现在时间
// dim dTime = Time.Now()
// TracePrint dTime
// // 获取当前
// Do while True
// Delay(1000)
// dim dTime2 = Time.Now()
// dim iRet = Time.DateDiff("s",dTime,dTime2)
// dim t = iRet Mod 10
// TracePrint t
// if t = 0
// TracePrint("过了10秒了")
// End If
// Loop
// 1,打开或者绑定浏览器
try
hWeb = WebBrowser.BindBrowser("chrome",10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
iRet = WebBrowser.GoURL(hWeb,url,true,"",30000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
catch
hWeb = WebBrowser.Create("chrome",url,30000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"sBrowserPath":"","sStartArgs":""})
end try
// 2,判断元素是否存在
#icon("@res:7ogel0bb-v860-10rg-apvt-paqri2q09rrd.png")
dim bRet1 = UiElement.Exists({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"SPAN","parentid":"body","aaname":"主题数"}]},{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
#icon("@res:1fnadmus-1bqb-6uol-kphg-b5573crjvd89.png")
dim bRet2 = UiElement.Exists({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"SPAN","parentid":"body","aaname":"帖子数"}]},{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
dim sRet = ""
#icon("@res:r3v880o4-ttf6-7v5h-02m6-4fl94bamrrdv.png")
dim bRet3 = UiElement.Exists({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"SPAN","parentid":"body","aaname":"用户数"}]},{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
if bRet1 and bRet2 and bRet3
dim data = get_data() // 抓取数据
write_data_word(data) // 写入数据
End If
// 3, 抓取数据
Function get_data()
#icon("@res:1k6lpshv-eam4-albr-h5d4-3lcr28b3kedp.png")
dim topicNum = UiElement.GetValue({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"B","tableCol":"1"}]},{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
#icon("@res:bm6dsjrj-vtgd-1dqc-2mqs-471ceo4qbuuu.png")
dim textNum = UiElement.GetValue({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"B","tableCol":"2"}]},{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
#icon("@res:aqh2vf9q-kru8-7khe-hkov-shem9h1f1ku8.png")
dim userNum = UiElement.GetValue({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"B","tableCol":"3"}]},{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
Return {
"主题数":topicNum,\
"帖子数":textNum,\
"用户数":userNum\
}
End Function
// 4, 写入数据到表格
Function write_data_word(data)
// 打开word
dim objWord = Word.Open(@res"UiBot官网发帖数量监控报告.docx","","",true)
// 搜索日期,写入日期
Word.SetTextPosition(objWord,"日期",2)
Word.MovePosition(objWord,1,{"sType":"line","sPosition":"down","bShift":false})
dim dTime = Time.Now()
dim sRet = Time.Format(dTime,"yyyy-mm-dd")
Word.Write(objWord,sRet)
// 写入,主题,正文,用户
Word.SetTextPosition(objWord,"主题数",2)
Word.MovePosition(objWord,1,{"sType":"line","sPosition":"down","bShift":false})
Word.Write(objWord,data["主题数"])
Word.SetTextPosition(objWord,"帖子数",2)
Word.MovePosition(objWord,1,{"sType":"line","sPosition":"down","bShift":false})
Word.Write(objWord,data["帖子数"])
Word.SetTextPosition(objWord,"用户数",2)
Word.MovePosition(objWord,1,{"sType":"line","sPosition":"down","bShift":false})
Word.Write(objWord,data["用户数"])
// 另存word文档
dim newName = "UiBot官网发帖数量监控报告"&sRet
Word.SaveAs(objWord,@res""&newName,{"fileFormat":"16"})
End Function