Revert "Revert "feat. colly execute add proxy""

This commit is contained in:
rocketlaunchr-cto 2021-07-01 12:00:02 +10:00 committed by GitHub
parent 549e263a99
commit cbe6f2c64f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 1 deletions

View File

@ -8,6 +8,7 @@ import (
"strings"
"github.com/gocolly/colly/v2"
"github.com/gocolly/colly/v2/proxy"
)
// Result represents a single result from Google Search.
@ -254,6 +255,9 @@ type SearchOptions struct {
// OverLimit searches for more results than that specified by Limit.
// It then reduces the returned results to match Limit.
OverLimit bool
// ProxyAddr sets a proxy address to avoid IP blocking.
ProxyAddr string
}
// Search returns a list of search results from Google.
@ -329,6 +333,15 @@ func Search(ctx context.Context, searchTerm string, opts ...SearchOptions) ([]Re
}
url := url(searchTerm, opts[0].CountryCode, lc, limit, opts[0].Start)
if opts[0].ProxyAddr != "" {
rp, err := proxy.RoundRobinProxySwitcher(opts[0].ProxyAddr)
if err != nil {
return nil, err
}
c.SetProxyFunc(rp)
}
c.Visit(url)
if rErr != nil {

View File

@ -16,7 +16,8 @@ func TestSearch(t *testing.T) {
q := "Hello World"
opts := googlesearch.SearchOptions{
Limit: 20,
Limit: 20,
ProxyAddr: "socks://127.0.0.1:7890",
}
returnLinks, err := googlesearch.Search(ctx, q, opts)