Documentation
¶
Index ¶
- Variables
- func ConvertSearchResultsMap(searchResultsMap map[string]SearchResult) *[]SearchResult
- func InitLogger(isVerbose, isDebug bool)
- func LogWithEngine(level logrus.Level, engine, message string, args ...interface{})
- type Browser
- type BrowserOpts
- type CaptchaSolver
- type EngineLogger
- func (el *EngineLogger) Debug(message string, args ...interface{})
- func (el *EngineLogger) Error(message string, args ...interface{})
- func (el *EngineLogger) Fatal(message string, args ...interface{})
- func (el *EngineLogger) Info(message string, args ...interface{})
- func (el *EngineLogger) Panic(message string, args ...interface{})
- func (el *EngineLogger) Warn(message string, args ...interface{})
- type MegaSearchResult
- type Query
- type SearchEngine
- type SearchEngineOptions
- type SearchResult
- type Server
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrCaptcha = errors.New("captcha detected")
View Source
var ErrSearchTimeout = errors.New("timeout. Cannot find element on page")
Functions ¶
func ConvertSearchResultsMap ¶ added in v0.4.1
func ConvertSearchResultsMap(searchResultsMap map[string]SearchResult) *[]SearchResult
func InitLogger ¶
func InitLogger(isVerbose, isDebug bool)
func LogWithEngine ¶ added in v0.5.3
LogWithEngine logs a message with engine information (deprecated - use EngineLogger instead)
Types ¶
type Browser ¶
type Browser struct {
BrowserOpts
CaptchaSolver *CaptchaSolver
// contains filtered or unexported fields
}
func NewBrowser ¶
func NewBrowser(opts BrowserOpts) (*Browser, error)
func (*Browser) IsInitialized ¶
Check whether browser instance is already created
type BrowserOpts ¶
type BrowserOpts struct {
IsHeadless bool // Use browser interface
IsLeakless bool // Force to kill browser
Timeout time.Duration // Timeout
LanguageCode string
WaitRequests bool // Wait requests to complete after navigation
LeavePageOpen bool // Leave pages and browser open
WaitLoadTime time.Duration // Time to wait till page loads
CaptchaSolverApiKey string // 2Captcha api key
ProxyURL string // Proxy URL
Insecure bool // Allow insecure TLS connections
UseStealth bool // Use go-rod stealth plugin
}
func (*BrowserOpts) Check ¶ added in v0.2.1
func (o *BrowserOpts) Check()
Initialize browser parameters with default values if they are not set
type CaptchaSolver ¶ added in v0.4.1
type CaptchaSolver struct {
// contains filtered or unexported fields
}
func NewSolver ¶ added in v0.4.1
func NewSolver(apikey string) *CaptchaSolver
func (*CaptchaSolver) SolveReCaptcha2 ¶ added in v0.4.1
func (cs *CaptchaSolver) SolveReCaptcha2(sitekey, pageUrl, dataS string) (string, string, error)
type EngineLogger ¶ added in v0.5.3
type EngineLogger struct {
// contains filtered or unexported fields
}
EngineLogger provides simplified logging for search engines
func NewEngineLogger ¶ added in v0.5.3
func NewEngineLogger(engine string) *EngineLogger
NewEngineLogger creates a new logger for a specific search engine
func (*EngineLogger) Debug ¶ added in v0.5.3
func (el *EngineLogger) Debug(message string, args ...interface{})
Debug logs a debug message
func (*EngineLogger) Error ¶ added in v0.5.3
func (el *EngineLogger) Error(message string, args ...interface{})
Error logs an error message
func (*EngineLogger) Fatal ¶ added in v0.5.3
func (el *EngineLogger) Fatal(message string, args ...interface{})
Fatal logs a fatal message
func (*EngineLogger) Info ¶ added in v0.5.3
func (el *EngineLogger) Info(message string, args ...interface{})
Info logs an info message
func (*EngineLogger) Panic ¶ added in v0.5.3
func (el *EngineLogger) Panic(message string, args ...interface{})
Panic logs a panic message
func (*EngineLogger) Warn ¶ added in v0.5.3
func (el *EngineLogger) Warn(message string, args ...interface{})
Warn logs a warning message
type MegaSearchResult ¶ added in v0.5.3
type MegaSearchResult struct {
SearchResult
Engine string `json:"engine"`
}
MegaSearchResult represents a search result with engine information
type Query ¶
type Query struct {
Text string
LangCode string // eg. EN, ES, RU...
DateInterval string // format: YYYYMMDD..YYYMMDD - 20181010..20231010
Filetype string // File extension to search.
Site string // Search site
Limit int // Limit the number of results
Answers bool // Include question and answers from SERP page to results with negative indexes
ProxyURL string // Proxy URL for raw requests
Insecure bool // Allow insecure TLS connections
}
type SearchEngine ¶
type SearchEngine interface {
Search(Query) ([]SearchResult, error)
SearchImage(Query) ([]SearchResult, error)
IsInitialized() bool
Name() string
GetRateLimiter() *rate.Limiter
}
type SearchEngineOptions ¶ added in v0.2.1
type SearchEngineOptions struct {
RateRequests int `mapstructure:"rate_requests"`
RateTime int64 `mapstructure:"rate_seconds"`
RateBurst int `mapstructure:"rate_burst"`
SelectorTimeout int64 `mapstructure:"selector_timeout"` // CSS selector timeout in seconds
IsSolveCaptcha bool `mapstructure:"captcha"`
}
func (*SearchEngineOptions) GetRatelimit ¶ added in v0.2.1
func (o *SearchEngineOptions) GetRatelimit() time.Duration
func (*SearchEngineOptions) GetSelectorTimeout ¶ added in v0.2.1
func (o *SearchEngineOptions) GetSelectorTimeout() time.Duration
func (*SearchEngineOptions) Init ¶ added in v0.2.1
func (o *SearchEngineOptions) Init()
type SearchResult ¶
type SearchResult struct {
Rank int `json:"rank"`
URL string `json:"url"`
Title string `json:"title"`
Description string `json:"description"`
Ad bool `json:"ad"`
}
func DeduplicateResults ¶ added in v0.4.1
func DeduplicateResults(results []SearchResult) []SearchResult
Click to show internal directories.
Click to hide internal directories.