• 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,
    }
    

      

  • 相关阅读:
    美食小记
    美食小记
    移动端手势的七个事件库
    移动端手势的七个事件库
    利用PS把多张psd格式的图片转换为一张PDF格式
    利用PS把多张psd格式的图片转换为一张PDF格式
    常用的六个富文本编辑器
    常用的六个富文本编辑器
    如何获取公众号里面的歌曲
    快速幂算法
  • 原文地址:https://www.cnblogs.com/liujie-php/p/11570860.html
Copyright © 2020-2023  润新知