zoukankan      html  css  js  c++  java
  • colly 配置 ##4

    配置

    Colly是一个高度可定制的抓取框架。它有合理的默认值,并提供了大量的选项来更改它们。

    收集器的配置

    收集器属性的完整列表可以在这里找到。初始化收集器的推荐方法是使用 colly.NewCollector(options...)。

    创建一个具有默认设置的收集器:

    c1 := colly.NewCollector()
    

    创建另一个收集器,并更改用户代理和url重新操作:

    c2 := colly.NewCollector(
    	colly.UserAgent("xy"),
    	colly.AllowURLRevisit(),
    )
    

      

    或者

    c2 := colly.NewCollector()
    c2.UserAgent = "xy"
    c2.AllowURLRevisit = true
    

      

    通过覆盖收集器的属性,可以在抓取作业的任何时候更改配置。

     一个很好的例子是用户代理切换器,它在每次请求时都会改变用户代理:
    const letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    
    func RandomString() string {
    	b := make([]byte, rand.Intn(10)+10)
    	for i := range b {
    		b[i] = letterBytes[rand.Intn(len(letterBytes))]
    	}
    	return string(b)
    }
    
    c := colly.NewCollector()
    
    c.OnRequest(func(r *colly.Request) {
    	r.Headers.Set("User-Agent", RandomString())
    })
    

    通过环境变量进行配置 

    收集器的默认配置可以通过环境变量更改。这允许我们在不重新编译的情况下微调收集器。环境解析是收集器初始化的最后一步,因此初始化之后的每个配置更改都会覆盖从环境中解析的配置。

    环境变量配置

    • ALLOWED_DOMAINS (用逗号分隔的域列表)
    • CACHE_DIR (string)
    • DETECT_CHARSET (y/n)
    • DISABLE_COOKIES (y/n)
    • DISALLOWED_DOMAINS (用逗号分隔的域列表)
    • IGNORE_ROBOTSTXT (y/n)
    • MAX_BODY_SIZE (int)
    • MAX_DEPTH (int - 0表示无穷大)
    • PARSE_HTTP_ERROR_RESPONSE (y/n)
    • USER_AGENT (string)

    HTTP配置

    Colly使用Golang的默认http客户端作为网络层。可以通过更改默认的HTTP往返器调整HTTP选项

    c := colly.NewCollector()
    c.WithTransport(&http.Transport{
    	Proxy: http.ProxyFromEnvironment,
    	DialContext: (&net.Dialer{
    		Timeout:   30 * time.Second,
    		KeepAlive: 30 * time.Second,
    		DualStack: true,
    	}).DialContext,
    	MaxIdleConns:          100,
    	IdleConnTimeout:       90 * time.Second,
    	TLSHandshakeTimeout:   10 * time.Second,
    	ExpectContinueTimeout: 1 * time.Second,
    }
    

      

  • 相关阅读:
    BFS visit tree
    Kth Largest Element in an Array 解答
    Merge k Sorted Lists 解答
    Median of Two Sorted Arrays 解答
    Maximal Square 解答
    Best Time to Buy and Sell Stock III 解答
    Best Time to Buy and Sell Stock II 解答
    Best Time to Buy and Sell Stock 解答
    Triangle 解答
    Unique Binary Search Trees II 解答
  • 原文地址:https://www.cnblogs.com/liujie-php/p/11570860.html
Copyright © 2011-2022 走看看