0

[Golang] Scrape JavaScript Code via strings Package

 2 years ago
source link: http://siongui.github.io/2016/04/18/go-strings-package-scrap-js/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

[Golang] Scrape JavaScript Code via strings Package

April 18, 2016

Scape JavaScript code to get campaign number via Go strings package - answer to Stack Overflow question: How can I scrap values from embedded Javascript in HTML?

Run Code on Go Playground

so31864758.go | repository | view raw

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)
		}
	}
}

Tested on: Ubuntu Linux 15.10, Go 1.6.1.


References:

[1]How can I scrap values from embedded Javascript in HTML? - Stack Overflow

[2]Posts containing 'goquery' - Stack Overflow


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK