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

      

  • 相关阅读:
    Winform架构
    SQL2008多数据库查询表或删表
    hdu1114 PiggyBank
    hdu2844 Coins
    hdu2602 Bone Collector
    hdu2191 珍惜现在
    hdu1203 I NEED A OFFER!
    求推荐
    TransparentBlt
    双缓冲加载位图 WinCE
  • 原文地址:https://www.cnblogs.com/liujie-php/p/11570860.html
Copyright © 2011-2022 走看看