案例说明

       官网日志信息提取, 每日统计官网日志信息(主题数,发帖数,用户数),保存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

results matching ""

    No results matching ""