Skip to content
This repository was archived by the owner on Aug 30, 2020. It is now read-only.

Commit b9ab10e

Browse files
committed
update chromedp, exec opts
1 parent c7cd450 commit b9ab10e

File tree

3 files changed

+47
-56
lines changed

3 files changed

+47
-56
lines changed

go.mod

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,20 @@ go 1.12
44

55
require (
66
cloud.google.com/go v0.30.0
7-
github.com/chromedp/cdproto v0.0.0-20181012004542-276e2e7f3538 // indirect
8-
github.com/chromedp/chromedp v0.1.2
9-
github.com/disintegration/imaging v1.5.0 // indirect
7+
github.com/chromedp/cdproto v0.0.0-20191114225735-6626966fbae4 // indirect
8+
github.com/chromedp/chromedp v0.5.1
109
github.com/google/go-cmp v0.3.1 // indirect
1110
github.com/googleapis/gax-go v2.0.0+incompatible // indirect
12-
github.com/gorilla/websocket v1.4.0 // indirect
1311
github.com/kr/pretty v0.1.0 // indirect
1412
github.com/labstack/echo v0.0.0-20180911044237-1abaa3049251
1513
github.com/labstack/gommon v0.2.7 // indirect
1614
github.com/mattn/go-isatty v0.0.4 // indirect
1715
github.com/valyala/bytebufferpool v1.0.0 // indirect
1816
go.opencensus.io v0.17.0 // indirect
1917
golang.org/x/crypto v0.0.0-20181012144002-a92615f3c490 // indirect
20-
golang.org/x/image v0.0.0-20180926015637-991ec62608f3 // indirect
2118
golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1
2219
golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced // indirect
23-
golang.org/x/sys v0.0.0-20181011152604-fa43e7bc11ba // indirect
20+
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e // indirect
2421
google.golang.org/api v0.0.0-20181012000736-72df7e5ac770
2522
google.golang.org/appengine v1.2.0 // indirect
2623
google.golang.org/genproto v0.0.0-20181004005441-af9cb2a35e7f // indirect

go.sum

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,22 @@ cloud.google.com/go v0.30.0 h1:xKvyLgk56d0nksWq49J0UyGEeUIicTl4+UBiX1NPX9g=
33
cloud.google.com/go v0.30.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
44
git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=
55
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
6-
github.com/chromedp/cdproto v0.0.0-20180713053126-e314dc107013/go.mod h1:C2GPAraqdt1KfZU7aSmx1XUgarNq/3JmxevQkmCjOVs=
7-
github.com/chromedp/cdproto v0.0.0-20181012004542-276e2e7f3538 h1:8oE8+KKWfI84ai48V9nHF1gQpMQY57twdiiNY1hSO24=
8-
github.com/chromedp/cdproto v0.0.0-20181012004542-276e2e7f3538/go.mod h1:NcHZYATbiYX27TBzC98mmdw6oG1CGTiRXN+qGlkIzXs=
9-
github.com/chromedp/chromedp v0.1.2 h1:qB/dpbbbOPGkKyZU2gKB49jp+ZvY9C3rPUfYELLz+6g=
10-
github.com/chromedp/chromedp v0.1.2/go.mod h1:83UDY5CKmHrvKLQ6vVU+LVFUcfjOSPNufx8XFWLUYlQ=
6+
github.com/chromedp/cdproto v0.0.0-20191009033829-c22f49c9ff0a/go.mod h1:PfAWWKJqjlGFYJEidUM6aVIWPr0EpobeyVWEEmplX7g=
7+
github.com/chromedp/cdproto v0.0.0-20191114225735-6626966fbae4 h1:QD3KxSJ59L2lxG6MXBjNHxiQO2RmxTQ3XcK+wO44WOg=
8+
github.com/chromedp/cdproto v0.0.0-20191114225735-6626966fbae4/go.mod h1:PfAWWKJqjlGFYJEidUM6aVIWPr0EpobeyVWEEmplX7g=
9+
github.com/chromedp/chromedp v0.5.1 h1:PAqhoCWCHzRphYnmmxLSiYk7EEwDplCm4woTCCaV2cQ=
10+
github.com/chromedp/chromedp v0.5.1/go.mod h1:3NMfuKTrKNr8PWEvHzdzZ57PK4jm9zW1C5nKiaWdxcM=
1111
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
1212
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
1313
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1414
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
1515
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
16-
github.com/disintegration/imaging v1.4.2/go.mod h1:9B/deIUIrliYkyMTuXJd6OUFLcrZ2tf+3Qlwnaf/CjU=
17-
github.com/disintegration/imaging v1.5.0 h1:uYqUhwNmLU4K1FN44vhqS4TZJRAA4RhBINgbQlKyGi0=
18-
github.com/disintegration/imaging v1.5.0/go.mod h1:9B/deIUIrliYkyMTuXJd6OUFLcrZ2tf+3Qlwnaf/CjU=
16+
github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0=
17+
github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo=
18+
github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8=
19+
github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw=
20+
github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo=
21+
github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM=
1922
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
2023
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
2124
github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=
@@ -26,12 +29,9 @@ github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=
2629
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
2730
github.com/googleapis/gax-go v2.0.0+incompatible h1:j0GKcs05QVmm7yesiZq2+9cxHkNK9YM6zKx4D2qucQU=
2831
github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
29-
github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
30-
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
31-
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
3232
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
33-
github.com/knq/sysutil v0.0.0-20180306023629-0218e141a794 h1:hgWKTlyruPI7k8W+0FmTMLf+8d2KPxyzTxsfDDQhNp8=
34-
github.com/knq/sysutil v0.0.0-20180306023629-0218e141a794/go.mod h1:BjPj+aVjl9FW/cCGiF3nGh5v+9Gd3VCgBQbod/GlMaQ=
33+
github.com/knq/sysutil v0.0.0-20191005231841-15668db23d08 h1:V0an7KRw92wmJysvFvtqtKMAPmvS5O0jtB0nYo6t+gs=
34+
github.com/knq/sysutil v0.0.0-20191005231841-15668db23d08/go.mod h1:dFWs1zEqDjFtnBXsd1vPOZaLsESovai349994nHx3e0=
3535
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
3636
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
3737
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
@@ -42,9 +42,8 @@ github.com/labstack/echo v0.0.0-20180911044237-1abaa3049251/go.mod h1:rWD2DNQgFb
4242
github.com/labstack/gommon v0.0.0-20180312174116-6fe1405d73ec/go.mod h1:/tj9csK2iPSBvn+3NLM9e52usepMtrd5ilFYA+wQNJ4=
4343
github.com/labstack/gommon v0.2.7 h1:2qOPq/twXDrQ6ooBGrn3mrmVOC+biLlatwgIu8lbzRM=
4444
github.com/labstack/gommon v0.2.7/go.mod h1:/tj9csK2iPSBvn+3NLM9e52usepMtrd5ilFYA+wQNJ4=
45-
github.com/mailru/easyjson v0.0.0-20180606163543-3fdea8d05856/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
46-
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic=
47-
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
45+
github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=
46+
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
4847
github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=
4948
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
5049
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
@@ -70,9 +69,6 @@ go.opencensus.io v0.17.0/go.mod h1:mp1VrMQxhlqqDpKvH4UcQUa4YwlzNmymAjPrDdfxNpI=
7069
golang.org/x/crypto v0.0.0-20180312195533-182114d58262/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
7170
golang.org/x/crypto v0.0.0-20181012144002-a92615f3c490 h1:va0qYsIOza3Nlf2IncFyOql4/3XUq3vfge/Ad64bhlM=
7271
golang.org/x/crypto v0.0.0-20181012144002-a92615f3c490/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
73-
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
74-
golang.org/x/image v0.0.0-20180926015637-991ec62608f3 h1:5IfA9fqItkh2alJW94tvQk+6+RF9MW2q9DzwE8DBddQ=
75-
golang.org/x/image v0.0.0-20180926015637-991ec62608f3/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
7672
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
7773
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
7874
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -87,8 +83,9 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ
8783
golang.org/x/sys v0.0.0-20180312081825-c28acc882ebc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
8884
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
8985
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
90-
golang.org/x/sys v0.0.0-20181011152604-fa43e7bc11ba h1:nZJIJPGow0Kf9bU9QTc1U6OXbs/7Hu4e+cNv+hxH+Zc=
91-
golang.org/x/sys v0.0.0-20181011152604-fa43e7bc11ba/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
86+
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
87+
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e h1:N7DeIrjYszNmSW409R3frPPwglRwMkXSBzwVbkOjLLA=
88+
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
9289
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
9390
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
9491
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=

trackers/chrome_tracker.go

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,33 @@ import (
99
"time"
1010

1111
"github.com/chromedp/chromedp"
12-
"github.com/chromedp/chromedp/runner"
1312
)
1413

1514
var (
1615
chromeTimeout = time.Second * 120
1716
chromePath = ""
17+
chromeOpts = []chromedp.ExecAllocatorOption{
18+
chromedp.NoFirstRun,
19+
chromedp.NoDefaultBrowserCheck,
20+
chromedp.Headless,
21+
chromedp.DisableGPU,
22+
chromedp.Flag("enable-automation", false),
23+
chromedp.Flag("disable-background-networking", true),
24+
chromedp.Flag("disable-background-timer-throttling", true),
25+
chromedp.Flag("disable-backgrounding-occluded-windows", true),
26+
chromedp.Flag("disable-breakpad", true),
27+
chromedp.Flag("disable-client-side-phishing-detection", true),
28+
chromedp.Flag("disable-default-apps", true),
29+
chromedp.Flag("disable-dev-shm-usage", true),
30+
chromedp.Flag("disable-extensions", true),
31+
chromedp.Flag("disable-features", "site-per-process,TranslateUI,BlinkGenPropertyTrees"),
32+
chromedp.Flag("disable-hang-monitor", true),
33+
chromedp.Flag("disable-ipc-flooding-protection", true),
34+
chromedp.Flag("disable-popup-blocking", true),
35+
chromedp.Flag("disable-prompt-on-repost", true),
36+
chromedp.Flag("disable-renderer-backgrounding", true),
37+
chromedp.Flag("disable-sync", true),
38+
}
1839
)
1940

2041
func init() {
@@ -34,41 +55,17 @@ func init() {
3455
// ChromeTracker uses headless chrome to fetch content from given url and xpath
3556
// and returns content/error message, ok
3657
func ChromeTracker(url, xpath *string) (string, bool) {
37-
ctx, cancel := context.WithTimeout(context.Background(), chromeTimeout)
58+
allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), chromeOpts...)
59+
defer cancel()
60+
ctx, cancel := chromedp.NewContext(allocCtx)
3861
defer cancel()
39-
40-
opts := []runner.CommandLineOption{runner.Flag("headless", true)}
41-
if chromePath != "" {
42-
opts = append(opts, runner.Path(chromePath))
43-
}
44-
runnerOpt := chromedp.WithRunnerOptions(opts...)
45-
46-
// create chrome instance
47-
c, err := chromedp.New(ctx, runnerOpt)
48-
if err != nil {
49-
log.Println(err)
50-
return err.Error(), false
51-
}
5262

5363
var res string
54-
tasks := chromedp.Tasks{
55-
chromedp.Navigate(*url),
56-
chromedp.Text(*xpath, &res, chromedp.NodeVisible, chromedp.BySearch),
57-
}
64+
err := chromedp.Run(ctx, chromedp.Navigate(*url), chromedp.Text(*xpath, &res, chromedp.NodeVisible, chromedp.BySearch))
5865

59-
// run the tasks
60-
if err := c.Run(ctx, tasks); err != nil {
61-
log.Println(err)
62-
return err.Error(), false
63-
}
64-
65-
// shutdown chrome
66-
err = c.Shutdown(ctx)
6766
if err != nil {
6867
log.Fatal(err)
6968
}
7069

71-
c.Wait()
72-
7370
return strings.TrimSpace(res), true
7471
}

0 commit comments

Comments
 (0)