Browse Source

调整 go-rod browser close 的顺序

Signed-off-by: allan716 <[email protected]>
allan716 4 years ago
parent
commit
c732dd8e0f

+ 8 - 9
TestCode/test_timeout.go

@@ -93,15 +93,14 @@ func goStep(inData InputData) error {
 			}()
 
 			browser, err := rod_helper.NewBrowser("", true)
-			if err != nil {
-				println(inData.Index, in, "rod_helper.NewBrowser", err)
-				return
-			}
 			defer func() {
 				_ = browser.Close()
 				println(inData.Index, in, "browser closed")
 			}()
-
+			if err != nil {
+				println(inData.Index, in, "rod_helper.NewBrowser", err)
+				return
+			}
 			ontTime := false
 
 			for {
@@ -155,14 +154,14 @@ func goStep(inData InputData) error {
 
 func oneStep(inData InputData) error {
 	browser, err := rod_helper.NewBrowser("", true)
-	if err != nil {
-		println(inData.Index, "rod_helper.NewBrowser", err)
-		return err
-	}
 	defer func() {
 		_ = browser.Close()
 		println(inData.Index, "browser closed")
 	}()
+	if err != nil {
+		println(inData.Index, "rod_helper.NewBrowser", err)
+		return err
+	}
 	page, err := rod_helper.NewPageNavigate(browser, "https://www.baidu.com", 10*time.Second, 5)
 	if err != nil {
 		return err

+ 6 - 6
internal/logic/sub_supplier/subhd/subhd.go

@@ -77,12 +77,12 @@ func (s Supplier) GetSubListFromFile4Series(seriesInfo *series.SeriesInfo) ([]su
 	var browser *rod.Browser
 	// TODO 是用本地的 Browser 还是远程的,推荐是远程的
 	browser, err := rod_helper.NewBrowser(s.reqParam.HttpProxy, true)
-	if err != nil {
-		return nil, err
-	}
 	defer func() {
 		_ = browser.Close()
 	}()
+	if err != nil {
+		return nil, err
+	}
 	var subInfos = make([]supplier.SubInfo, 0)
 	var subList = make([]HdListItem, 0)
 	for value := range seriesInfo.NeedDlSeasonDict {
@@ -192,12 +192,12 @@ func (s Supplier) getSubListFromKeyword4Movie(keyword string) ([]supplier.SubInf
 	var browser *rod.Browser
 	// TODO 是用本地的 Browser 还是远程的,推荐是远程的
 	browser, err := rod_helper.NewBrowser(s.reqParam.HttpProxy, true)
-	if err != nil {
-		return nil, err
-	}
 	defer func() {
 		_ = browser.Close()
 	}()
+	if err != nil {
+		return nil, err
+	}
 	var subInfos []supplier.SubInfo
 	detailPageUrl, err := s.step0(browser, keyword)
 	if err != nil {

+ 3 - 3
internal/pkg/pass_water_wall/pass_water_wall.go

@@ -17,13 +17,13 @@ func SimulationTest() {
 	// 具体的应用见 subhd 的解析器
 	// 感谢 https://www.bigs3.com/article/gorod-crack-slider-captcha/
 	browser, err := rod_helper.NewBrowser("", false)
+	defer func() {
+		_ = browser.Close()
+	}()
 	if err != nil {
 		println(err.Error())
 		return
 	}
-	defer func() {
-		_ = browser.Close()
-	}()
 	page, err := rod_helper.NewPageNavigate(browser, "https://007.qq.com/online.html", 10*time.Second, 5)
 	if err != nil {
 		println(err.Error())

+ 3 - 3
internal/pkg/rod_helper/rodHelper.go

@@ -116,12 +116,12 @@ func NewPageNavigate(browser *rod.Browser, desURL string, timeOut time.Duration,
 // ReloadBrowser 提前把浏览器下载好
 func ReloadBrowser() {
 	newBrowser, err := NewBrowser("", true)
-	if err != nil {
-		return
-	}
 	defer func() {
 		_ = newBrowser.Close()
 	}()
+	if err != nil {
+		return
+	}
 	page, err := NewPageNavigate(newBrowser, "https://www.baidu.com", 30*time.Second, 5)
 	if err != nil {
 		return

+ 6 - 6
internal/pkg/rod_helper/rodHelper_test.go

@@ -9,12 +9,12 @@ func TestNewBrowser(t *testing.T) {
 	desURL := "https://www.wikipedia.org/"
 	httpProxyURL := "http://127.0.0.1:10809"
 	browser, err := NewBrowser(httpProxyURL, true)
-	if err != nil {
-		t.Fatal(err)
-	}
 	defer func() {
 		_ = browser.Close()
 	}()
+	if err != nil {
+		t.Fatal(err)
+	}
 	page, err := browser.Page(proto.TargetCreateTarget{URL: desURL})
 	if err != nil {
 		t.Fatal(err)
@@ -30,12 +30,12 @@ func TestNewBrowserFromDocker(t *testing.T) {
 	remoteDockerURL := "ws://192.168.50.135:9222"
 
 	browser, err := NewBrowserFromDocker(httpProxyURL, remoteDockerURL)
-	if err != nil {
-		t.Fatal(err)
-	}
 	defer func() {
 		_ = browser.Close()
 	}()
+	if err != nil {
+		t.Fatal(err)
+	}
 	page, err := browser.Page(proto.TargetCreateTarget{URL: desURL})
 	if err != nil {
 		t.Fatal(err)