Example Usage
package main
import (
"fmt"
"log"
"net/http"
"net/url"
"github.com/003random/getJS/extractor"
)
func main() {
baseURL, err := url.Parse("https://google.com")
if (err != nil) {
log.Fatalf("Error parsing base URL: %v", err)
}
resp, err := extractor.FetchResponse(baseURL.String(), "GET", http.Header{})
if (err != nil) {
log.Fatalf("Error fetching response: %v", err)
}
defer resp.Body.Close()
// Custom extraction points (optional).
extractionPoints := map[string][]string{
"script": {"src", "data-src"},
"a": {"href"},
}
sources, err := extractor.ExtractSources(resp.Body, extractionPoints)
if (err != nil) {
log.Fatalf("Error extracting sources: %v", err)
}
// Filtering and extending extracted sources.
filtered, err := extractor.Filter(sources, extractor.WithComplete(baseURL), extractor.WithResolve())
if (err != nil) {
log.Fatalf("Error filtering sources: %v", err)
}
for source := range filtered {
fmt.Println(source.String())
}
}