案例说明

       指定百度贴吧主题,随机读取Excel中评论信息进行消息发送

效果展示


案例实现

/*
需求: 随机在评论列表中选取一条评论, 在贴吧(电影)中进行评论
思路:
1, 打开网页
2, 搜索贴吧内容
3, 抓取内容
4, 打开链接
5, 发表评论
*/
dim hWeb = ""

// 1, 打开网页
Function open_url(url)
    Try
    hWeb = WebBrowser.BindBrowser("chrome",10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
    #icon("@res:default.png")
    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
End Function

// 2, 搜索贴吧内容
Function search_tiezi(tiezi_name)
    Try
        #icon("@res:lu1uup2j-56nl-3d83-uob6-bhhfgpo9insk.png")
        Keyboard.InputText({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"INPUT","id":"wd1"}]},tiezi_name,true,20,10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":500,"sKeyModifiers":[],"sSimulate":"message","bValidate":false,"bClickBeforeInput":false})
        #icon("@res:e21f33k8-vtb8-6qla-7uuf-7qpngmv5v4o6.png")
        Mouse.Action({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"A","parentid":"tb_header_search_form","aaname":"进入贴吧"}]},"left","click",10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":true,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate"})
    Catch 变量名
        #icon("@res:lu1uup2j-56nl-3d83-uob6-bhhfgpo9insk.png")
        Keyboard.InputText({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"INPUT","id":"wd1"}]},tiezi_name,true,20,10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":500,"sKeyModifiers":[],"sSimulate":"message","bValidate":false,"bClickBeforeInput":false})
        #icon("@res:e21f33k8-vtb8-6qla-7uuf-7qpngmv5v4o6.png")
        Mouse.Action({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"A","parentid":"tb_header_search_form","aaname":"进入贴吧"}]},"left","click",10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":true,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate"})    
    End Try

End Function


// 3, 抓取内容
Function get_tiezi_data
    dim arrayData = UiElement.DataScrap({"html":[{"id":"thread_list","tag":"UL"}],"wnd":[{"app":"chrome","cls":"Chrome_WidgetWin_1","title":"*"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}]},{"Columns":[{"props":["url"],"selecors":[{"index":0,"prefix":"","tag":"li","value":"li"},{"className":"t_con cleafix","index":0,"prefix":">","tag":"div","value":"div.t_con.cleafix"},{"className":"col2_right j_threadlist_li_right ","index":0,"prefix":">","tag":"div","value":"div.col2_right.j_threadlist_li_right"},{"className":"threadlist_lz clearfix","index":0,"prefix":">","tag":"div","value":"div.threadlist_lz.clearfix"},{"className":"threadlist_title pull_left j_th_tit ","index":0,"prefix":">","tag":"div","value":"div.threadlist_title.pull_left.j_th_tit"},{"className":"j_th_tit ","index":0,"prefix":">","tag":"a","value":"a.j_th_tit"}]}],"ExtractTable":0},{"objNextLinkElement":"","iMaxNumberOfPage":5,"iMaxNumberOfResult":-1,"iDelayBetweenMS":1000,"bContinueOnError":false})
    return arrayData
End Function

// 4, 打开链接
Function open_tiezi_url(url)
    Try
        #icon("@res:default.png")
        WebBrowser.GoURL(hWeb,url,true,{},30000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
    Catch 变量名
        Return false
    End Try

    Return true

End Function


// 5, 发表评论
Function send_comment(comment)
    Try
        #icon("@res:rq2v3e9m-2b03-cbkp-8rn8-fh7i85mjkcqk.png")
        Keyboard.InputText({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"DIV","id":"ueditor_replace"}]},comment,true,20,10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":500,"sKeyModifiers":[],"sSimulate":"message","bValidate":false,"bClickBeforeInput":false})
        #icon("@res:tt30fn12-95gc-obru-qq9o-v4evphd6ot9t.png")
        Mouse.Action({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"EM","parentid":"tb_rich_poster"}]},"left","click",10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":true,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate"})
    Catch 变量名
        Return false
    End Try

    Return true
End Function

// 入口程序
Function main
    // 1, 打开网页
    open_url("https://tieba.baidu.com/")

    // 2, 帖子搜索
    search_tiezi("电影")

    // 3, 抓取内容
    dim arrayData = get_tiezi_data()

    // 4, 打开网页
    For Each urls In arrayData

        // 打开网页
        dim isOpen = open_tiezi_url(urls[0])

        // 判断是否打开成功
        if isOpen = false
            Continue
        end if

        // 打开excel表
        Try
            dim objExcelWorkBook = Excel.BindBook("评论.xlsx")
        Catch 变量名
            objExcelWorkBook = Excel.OpenExcel("C:\\Users\\LaiYe\\Desktop\\源码讲解\\百度贴吧\\资料\\评论.xlsx",true,"Excel","","")
        End Try

        // 随机读取一条评论
        dim arrayRet = Excel.ReadColumn(objExcelWorkBook,"Sheet1","B1")
        dim count = Len(arrayRet)
        dim random = CInt((Rnd() * (count - 2)) + 1)  // [0-1] * 14 -> [0,14] -> [1,15]

        // 发布评论
        dim isSend = send_comment(arrayRet[random])

        if isSend = false
            TracePrint "发送失败 : " & urls[0]
        end if

    Next

End Function

main()

results matching ""

    No results matching ""