Skip to content

Commit d50dddc

Browse files
committed
fix search button not working
1 parent 7b32c5e commit d50dddc

File tree

4 files changed

+64
-31
lines changed

4 files changed

+64
-31
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
cmd/aiqicha/aiqicha
2+
cmd/aiqicha/*.xlsx

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,4 @@ Usage of ./aiqicha:
5151
- [x] 控股企业
5252
- [x] 知识产权
5353
- [x] 网站备案
54+
- [ ] 公众号、小程序、APP

pkg/aiqicha/init_browser.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,6 @@ func (a *aiqicha) SwitchTab() {
8686
if _, ok := targets_[targets[i].TargetID]; !ok {
8787
targets_[targets[i].TargetID] = time.Now()
8888
}
89-
err = target.ActivateTarget(targets[i].TargetID).Do(cdp.WithExecutor(a.ctx, chromedp.FromContext(a.ctx).Browser))
90-
if err != nil {
91-
continue
92-
}
9389
if time.Now().Sub(targets_[targets[i].TargetID]).Seconds() >= float64(a.conf_.Timeout) {
9490
_ = target.CloseTarget(targets[i].TargetID).Do(cdp.WithExecutor(a.ctx, chromedp.FromContext(a.ctx).Browser))
9591
}

pkg/aiqicha/search.go

Lines changed: 61 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -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(`
186220
const sleep = async (ms) => {

0 commit comments

Comments
 (0)