Browse Source

调整 go-rod new 实例故障的处理逻辑,取消开始时候浏览器的初始化预加载。

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

+ 8 - 8
TestCode/test_timeout.go

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

+ 4 - 4
cmd/chinesesubfinder/main.go

@@ -108,10 +108,10 @@ func main() {
 	// 初始化通知缓存模块
 	notify_center.Notify = notify_center.NewNotifyCenter(config.WhenSubSupplierInvalidWebHook)
 
-	log.Infoln("ReloadBrowser Start...")
-	// ReloadBrowser 提前把浏览器下载好
-	rod_helper.ReloadBrowser()
-	log.Infoln("ReloadBrowser End")
+	//log.Infoln("ReloadBrowser Start...")
+	//// ReloadBrowser 提前把浏览器下载好
+	//rod_helper.ReloadBrowser()
+	//log.Infoln("ReloadBrowser End")
 
 	// 任务还没执行完,下一次执行时间到来,下一次执行就跳过不执行
 	c := cron.New(cron.WithChain(cron.SkipIfStillRunning(cron.DefaultLogger)))

+ 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)
-	defer func() {
-		_ = browser.Close()
-	}()
 	if err != nil {
 		return nil, err
 	}
+	defer func() {
+		_ = browser.Close()
+	}()
 	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)
-	defer func() {
-		_ = browser.Close()
-	}()
 	if err != nil {
 		return nil, err
 	}
+	defer func() {
+		_ = browser.Close()
+	}()
 	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

@@ -115,12 +115,12 @@ func NewPageNavigate(browser *rod.Browser, desURL string, timeOut time.Duration,
 // ReloadBrowser 提前把浏览器下载好
 func ReloadBrowser() {
 	newBrowser, err := NewBrowser("", true)
-	defer func() {
-		_ = newBrowser.Close()
-	}()
 	if err != nil {
 		return
 	}
+	defer func() {
+		_ = newBrowser.Close()
+	}()
 	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)
-	defer func() {
-		_ = browser.Close()
-	}()
 	if err != nil {
 		t.Fatal(err)
 	}
+	defer func() {
+		_ = browser.Close()
+	}()
 	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)
-	defer func() {
-		_ = browser.Close()
-	}()
 	if err != nil {
 		t.Fatal(err)
 	}
+	defer func() {
+		_ = browser.Close()
+	}()
 	page, err := browser.Page(proto.TargetCreateTarget{URL: desURL})
 	if err != nil {
 		t.Fatal(err)