@@ -88,6 +88,7 @@ func tasks(data string) chromedp.Tasks {
8888 return nil
8989 }),
9090 chromedp .WaitVisible ("#aqc-search-input" ),
91+ // 判断是否登录
9192 chromedp .ActionFunc (func (ctx context.Context ) (err error ) {
9293 defer func () {
9394 if err != nil {
@@ -107,38 +108,33 @@ func tasks(data string) chromedp.Tasks {
107108 }
108109 return nil
109110 }),
111+ // 输入公司名,点击查询
110112 chromedp .ActionFunc (func (ctx context.Context ) (err error ) {
111113 defer func () {
112114 if err != nil {
113115 _ = target .CloseTarget (chromedp .FromContext (ctx ).Target .TargetID ).Do (cdp .WithExecutor (ctx , chromedp .FromContext (ctx ).Browser ))
114116 }
115117 }()
116- result , exception , err := runtime .Evaluate (`document.querySelector('body > div.base.page-index.has-search-tab > header > div > div.header-func > div.header-login > div > a').innerText` ).Do (ctx )
117- if err != nil {
118- return err
119- }
120- if exception != nil {
121- err = exception
122- return
123- }
124- if ! result .Value .IsDefined () {
125- return errors .New ("user is undefined ?" )
126- }
127- return nil
118+ return chromedp .SendKeys ("#aqc-search-input" , data ).Do (ctx )
128119 }),
129- chromedp .ActionFunc (func (ctx context.Context ) (err error ) {
130- defer func () {
131- if err != nil {
132- _ = target .CloseTarget (chromedp .FromContext (ctx ).Target .TargetID ).Do (cdp .WithExecutor (ctx , chromedp .FromContext (ctx ).Browser ))
133- }
120+ chromedp .ActionFunc (func (ctx context.Context ) error {
121+ return chromedp .Evaluate (`document.querySelector('body > div.base.page-index.has-search-tab > div.search-panel > div > div.index-search > div.index-search-input > button').click()` , nil ).Do (ctx )
122+ }),
123+ // 等待查询结果
124+ chromedp .ActionFunc (func (ctx context.Context ) error {
125+ fin := make (chan bool )
126+ go func () {
127+ _ = chromedp .WaitVisible ("body > div.base.page-search.has-search-tab > div.aqc-content-wrapper.has-footer > div > div.main > div.list-wrap > div.header > span" ).Do (ctx )
128+ fin <- true
134129 }()
135- err = chromedp .SendKeys ("#aqc-search-input" , data ).Do (ctx )
136- if err != nil {
137- return err
130+ select {
131+ case <- time .After (10 * time .Second ):
132+ return errors .New ("wait body > div.base.page-search.has-search-tab > div.aqc-content-wrapper.has-footer > div > div.main > div.list-wrap > div.header > span error" )
133+ case <- fin :
134+ break
138135 }
139- return chromedp . Click ( "body > div.base.page-index.has-search-tab > div.search-panel > div > div.index-search > div.index-search-input > button" ). Do ( ctx )
136+ return nil
140137 }),
141- chromedp .WaitVisible ("body > div.base.page-search.has-search-tab > div.aqc-content-wrapper.has-footer > div > div.main > div.list-wrap > div.header > span" ),
142138 chromedp .Sleep (1 * time .Second ),
143139 chromedp .ActionFunc (func (ctx context.Context ) error {
144140 // 判断是否为 0 家
@@ -173,14 +169,52 @@ for (var i = 0; i < companys.length; i++) {
173169 return err
174170 }
175171 if exception != nil {
176- err = exception
177- return
172+ return exception
178173 }
179174 return
180175 }),
181- chromedp .WaitVisible ("body > div.base.page-detail.has-search-tab > div.aqc-content-wrapper.has-footer > div > div.detail-header-container > div.detail-header > div.header-top > div.header-content > div.business-info > div.registered-capital.ellipsis-line-1 > span" ),
182- chromedp .WaitVisible ("#basic-stockchart > h3 > span" ),
183- chromedp .WaitVisible ("#basic-doubtcontroller > h3 > span" ),
176+ chromedp .ActionFunc (func (ctx context.Context ) error {
177+ fin := make (chan bool )
178+ go func () {
179+ _ = chromedp .WaitVisible ("body > div.base.page-detail.has-search-tab > div.aqc-content-wrapper.has-footer > div > div.detail-header-container > div.detail-header > div.header-top > div.header-content > div.business-info > div.registered-capital.ellipsis-line-1 > span" ).Do (ctx )
180+ fin <- true
181+ }()
182+ select {
183+ case <- time .After (10 * time .Second ):
184+ return errors .New ("wait body > div.base.page-detail.has-search-tab > div.aqc-content-wrapper.has-footer > div > div.detail-header-container > div.detail-header > div.header-top > div.header-content > div.business-info > div.registered-capital.ellipsis-line-1 > span error" )
185+ case <- fin :
186+ break
187+ }
188+ return nil
189+ }),
190+ chromedp .ActionFunc (func (ctx context.Context ) error {
191+ fin := make (chan bool )
192+ go func () {
193+ _ = chromedp .WaitVisible ("#basic-stockchart > h3 > span" ).Do (ctx )
194+ fin <- true
195+ }()
196+ select {
197+ case <- time .After (10 * time .Second ):
198+ return errors .New ("wait #basic-stockchart > h3 > span error" )
199+ case <- fin :
200+ break
201+ }
202+ return nil
203+ }),
204+ chromedp .ActionFunc (func (ctx context.Context ) error {
205+ fin := make (chan bool )
206+ go func () {
207+ _ = chromedp .WaitVisible ("#basic-doubtcontroller > h3 > span" ).Do (ctx )
208+ fin <- true
209+ }()
210+ select {
211+ case <- time .After (10 * time .Second ):
212+ return errors .New ("wait #basic-doubtcontroller > h3 > span error" )
213+ case <- fin :
214+ break
215+ }
216+ return nil
217+ }),
184218 chromedp .ActionFunc (func (ctx context.Context ) error {
185219 _ , exception , err := runtime .Evaluate (`
186220const sleep = async (ms) => {
0 commit comments