@@ -86,7 +86,10 @@ func main() {
|
||||
|
||||
defer extractor.DeferClose(search)
|
||||
|
||||
res := search.GetResults()
|
||||
res, err := search.GetResults()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to get results: %w", err)
|
||||
}
|
||||
fmt.Println("Results:", res)
|
||||
|
||||
err = search.LoadMore()
|
||||
@@ -95,7 +98,10 @@ func main() {
|
||||
}
|
||||
|
||||
time.Sleep(2 * time.Second)
|
||||
res = search.GetResults()
|
||||
res, err = search.GetResults()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to get results: %w", err)
|
||||
}
|
||||
fmt.Println("Results:", res)
|
||||
|
||||
return nil
|
||||
|
||||
@@ -130,5 +130,5 @@ func (c Config) Search(ctx context.Context, b extractor.Browser, query string) (
|
||||
return nil
|
||||
})
|
||||
|
||||
return res, nil
|
||||
return res, err
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
|
||||
type SearchPage interface {
|
||||
io.Closer
|
||||
GetResults() []Result
|
||||
GetResults() ([]Result, error)
|
||||
LoadMore() error
|
||||
}
|
||||
|
||||
@@ -17,11 +17,10 @@ type searchPage struct {
|
||||
doc extractor.Document
|
||||
}
|
||||
|
||||
func (s searchPage) GetResults() []Result {
|
||||
func (s searchPage) GetResults() ([]Result, error) {
|
||||
var res []Result
|
||||
var err error
|
||||
|
||||
err = s.doc.ForEach(`article[id^="r1-"]`, func(n extractor.Node) error {
|
||||
err := s.doc.ForEach(`article[id^="r1-"]`, func(n extractor.Node) error {
|
||||
var r Result
|
||||
|
||||
links := n.Select(`a[href][target="_self"]`)
|
||||
@@ -30,6 +29,7 @@ func (s searchPage) GetResults() []Result {
|
||||
return nil
|
||||
}
|
||||
|
||||
var err error
|
||||
r.URL, err = links[0].Attr(`href`)
|
||||
|
||||
if err != nil {
|
||||
@@ -53,7 +53,7 @@ func (s searchPage) GetResults() []Result {
|
||||
return nil
|
||||
})
|
||||
|
||||
return res
|
||||
return res, err
|
||||
}
|
||||
|
||||
func (s searchPage) LoadMore() error {
|
||||
|
||||
Reference in New Issue
Block a user