Revert "Revert "feat. colly execute add proxy""
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							549e263a99
						
					
				
				
					commit
					cbe6f2c64f
				
			
							
								
								
									
										13
									
								
								search.go
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								search.go
									
									
									
									
									
								
							@@ -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 {
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user