第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 HTML 中的嵌入式 Javascript 中抓取值?

如何從 HTML 中的嵌入式 Javascript 中抓取值?

Go
偶然的你 2021-11-01 10:18:33
我需要從網(wǎng)頁中嵌入的 Javascript 中解析一些值。我試圖用這樣的東西標(biāo)記 HTML,但它沒有標(biāo)記 Javascript 部分。func CheckSitegroup(httpBody io.Reader) []string {    sitegroups := make([]string, 0)    page := html.NewTokenizer(httpBody)    for {        tokenType := page.Next()        fmt.Println("TokenType:", tokenType)        // check if HTML file has ended        if tokenType == html.ErrorToken {            return sitegroups        }        token := page.Token()        fmt.Println("Token:", token)        if tokenType == html.StartTagToken && token.DataAtom.String() == "script" {            for _, attr := range token.Attr {                fmt.Println("ATTR.KEY:", attr.Key)                sitegroups = append(sitegroups, attr.Val)            }        }    }}HTML 正文中的腳本如下所示,我需要廣告系列編號(如果沒有編號或根本沒有 test.campaign =,則為 nil / "" - 站點組也是如此)。有沒有簡單的方法來獲取信息?我想過正則表達式,但也許還有別的東西?從未使用過正則表達式。<script type="text/javascript" >    var test = {};    test.campaign = "8d26113ba";    test.isTest = "false";    test.sitegroup = "Homepage";</script>
查看完整描述

2 回答

?
飲歌長嘯

TA貢獻1951條經(jīng)驗 獲得超3個贊

Go 標(biāo)準(zhǔn)字符串庫附帶了許多有用的函數(shù),您可以使用它們來解析 JavaScript 代碼以獲取所需的活動編號。


以下代碼可以從問題中提供的 js 代碼中獲取活動編號(在 Go Playground 上運行代碼):


package main


import (

    "bufio"

    "fmt"

    "os"

    "strings"

)


const js = `                                                                    

<script type="text/javascript" >                                                

    var test = {};                                                              

    test.campaign = "8d26113ba";                                                

    test.isTest = "false";                                                      

    test.sitegroup = "Homepage";                                                

</script>                                                                       

`


func StringToLines(s string) []string {

    var lines []string


    scanner := bufio.NewScanner(strings.NewReader(s))

    for scanner.Scan() {

        lines = append(lines, scanner.Text())

    }


    if err := scanner.Err(); err != nil {

        fmt.Fprintln(os.Stderr, "reading standard input:", err)

    }


    return lines

}


func getCampaignNumber(line string) string {

    tmp := strings.Split(line, "=")[1]

    tmp = strings.TrimSpace(tmp)

    tmp = tmp[1 : len(tmp)-2]

    return tmp

}


func main() {

    lines := StringToLines(js)

    for _, line := range lines {

        if strings.Contains(line, "campaign") {

            result := getCampaignNumber(line)

            println(result)

        }

    }

}


查看完整回答
反對 回復(fù) 2021-11-01
  • 2 回答
  • 0 關(guān)注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號