github.com/gocolly/colly
v1.2.0
#115 most downloaded on Go modules
gocolly/colly
What this package is like to depend on
Last release 7 years ago
no release in 18 months
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 3 of 3 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
117 releases · first in 2017
0 releases in the last 12 months
see the full history below
Release timeline
117 releases · Sep 2017 to Jan 2020Releases
latest 60 of 117-
v1.2.1-0.20200129072144-404deac8a0df29 Jan 2020 pre-releaseNothing published for this version
-
v1.2.1-0.20200128050352-3195a1f6884c28 Jan 2020 pre-releaseNothing published for this version
-
v1.2.1-0.20191206110325-403d4e6a8c3206 Dec 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20191128122054-e910bad0523128 Nov 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20191119151050-f30f571073f119 Nov 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20191115125934-190354a4146515 Nov 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20191115125042-01f6c0cad9ff15 Nov 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20191115125012-152334abcb3115 Nov 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20191031141054-0f19e8a9ead531 Oct 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20191024135456-18c33ec1db6b24 Oct 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20191016110616-e5e37682074216 Oct 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20191014210000-096185263a1014 Oct 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190820173557-56e23dd342ea20 Aug 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190812112318-8defd40054c512 Aug 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190812112238-bb3ff326d96712 Aug 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190725140104-2f95f64a7e9225 Jul 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190702172252-2e4108fbc87002 Jul 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190523150245-d360e4bd7c2723 May 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190523150148-07c63dca885823 May 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190506153729-a3d65290bc4a06 May 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190411120742-47ec7bf9f81611 Apr 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190408114448-b3d99101c62508 Apr 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190401125732-20508dbeb8cd01 Apr 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190318192923-387623bc99c518 Mar 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190313103421-9192be95497e13 Mar 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190307140706-5dbb1a80a21e07 Mar 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190304122934-f1a7e8f68c3904 Mar 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190304122001-1ebddaf0982704 Mar 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190221130917-389bc3c811e121 Feb 2019 pre-releaseNothing published for this version
-
v1.2.1-0.20190216155948-f4ad42d7bd2f16 Feb 2019 pre-releaseNothing published for this version
-
v1.2.013 Feb 2019Release notes
Open source →- Compatibility with the latest htmlquery package
- New request shortcut for HEAD requests
- Check URL availibility before visiting
- Fix proxy URL value
- Request counter fix
- Minor fixes in examples
Release notes
Open source →- Compatibility with the latest htmlquery package
- New request shortcut for HEAD requests
- Check URL availability before visiting
- Fix proxy URL value
- Request counter fix
- Minor fixes in examples
Release notes
Open source →- Compatibility with the latest htmlquery package
- New request shortcut for HEAD requests
- Check URL availibility before visiting
- Fix proxy URL value
- Request counter fix
- Minor fixes in examples
-
v1.1.1-0.20191128122054-e910bad0523128 Nov 2019 pre-releaseNothing published for this version
-
v1.1.1-0.20190214061556-ac474583fbcc14 Feb 2019 pre-releaseNothing published for this version
-
v1.1.1-0.20190204140905-b3032e87d3ef04 Feb 2019 pre-releaseNothing published for this version
-
v1.1.1-0.20181214064930-7e951553531714 Dec 2018 pre-releaseNothing published for this version
-
v1.1.1-0.20181028044746-8be5ab8a22a428 Oct 2018 pre-releaseNothing published for this version
-
v1.1.1-0.20181027122744-9d640534f80327 Oct 2018 pre-releaseNothing published for this version
-
v1.1.1-0.20181011211323-76ef6487af6211 Oct 2018 pre-releaseNothing published for this version
-
v1.1.1-0.20181001123106-37b7efabf4b601 Oct 2018 pre-releaseNothing published for this version
-
v1.1.1-0.20180917143251-7c1d26d1b51017 Sep 2018 pre-releaseNothing published for this version
-
v1.1.1-0.20180917064023-78b4030df4cc17 Sep 2018 pre-releaseNothing published for this version
-
v1.1.028 Aug 2018Release notes
Open source →- Appengine integration takes context.Context instead of http.Request (API change)
- Added "Accept" http header by default to every request
- Support slices of pointers and structs in unmarshal
- Fixed a race condition in queues
- ForEachWithBreak method added to HTMLElement
- Added a local file example
- Support gzip decompression of response bodies
- Don't share waitgroup when cloning a collector
- Fixed instagram example
Release notes
Open source →- Appengine integration takes context.Context instead of http.Request (API change)
- Added "Accept" http header by default to every request
- Support slices of pointers in unmarshal
- Fixed a race condition in queues
- ForEachWithBreak method added to HTMLElement
- Added a local file example
- Support gzip decompression of response bodies
- Don't share waitgroup when cloning a collector
- Fixed instagram example
-
v1.0.1-0.20190820173557-56e23dd342ea20 Aug 2019 pre-releaseNothing published for this version
-
v1.0.1-0.20180817092032-5ed0687f9a2c17 Aug 2018 pre-releaseNothing published for this version
-
v1.0.1-0.20180807171945-affa2bc560c907 Aug 2018 pre-releaseNothing published for this version
-
v1.0.1-0.20180710094205-c4dc277a2f6a10 Jul 2018 pre-releaseNothing published for this version
-
v1.0.1-0.20180710094035-10350f90446310 Jul 2018 pre-releaseNothing published for this version
-
v1.0.1-0.20180704104352-f9e277f8f0b304 Jul 2018 pre-releaseNothing published for this version
-
v1.0.1-0.20180627083804-2e03a396ce3027 Jun 2018 pre-releaseNothing published for this version
-
v1.0.1-0.20180622175928-1d5f06aa80bc22 Jun 2018 pre-releaseNothing published for this version
-
v1.0.1-0.20180614192747-41323a470fac14 Jun 2018 pre-releaseNothing published for this version
-
v1.0.1-0.20180605180307-903f5b1b701005 Jun 2018 pre-releaseNothing published for this version
-
v1.0.1-0.20180522131348-e7f1a2136ff122 May 2018 pre-releaseNothing published for this version
-
v1.0.1-0.20180522102934-061013bedd4222 May 2018 pre-releaseNothing published for this version
-
v1.0.012 May 2018Release notes
Open source →We are happy to announce that the first major release of Colly is here. Our goal was to create a scraping framework to speed up development and let its users concentrate on collecting relevant data. There is no need to reinvent the wheel when writing a new collector. Scrapers built on top of Colly support different storage backends, dynamic configuration and running requests in parallel out of the box. It is also possible to run your scrapers in a distributed manner.
Facts about the development
It started in September 2017 and has not stopped since. Colly has attracted numerous developers who helped by providing valuable feedback and contributing new features. Let's see the numbers. In the last seven months 30 contributors have created 338 commits. Users have opened 78 issues. 74 of the those were resolved in a few days. Contributors have opened 59 pull requests and all of them except for one are either got merged or closed. We would like to thank all of our supporters who either contributed code or wrote blog posts about Colly or helped development somehow. We would not be here without you.
You might ask why it is released now. Our experience in various deployments in production shows Colly provides a stable and robust platform for developing and running scrapers both locally and in multi server configuration. The feature set is complete and ready to support even complex use cases. What are those features?
-
Rate limiting During scraping controlling the number of request sent to the scraped site might be crucial. We would not want to disrupt the service by overloading with too many requests. It is bad for the operators of the site and also for us, because the data we would like to collect becomes inaccessible. Thus, request number must be limited. The collector provided by Colly can be configured to send only a limited number of requests in parallel.
-
Request caching To relieve the load from external services and decrease the number of outgoing requests response caching is supported.
-
Configurable via environment variables To eliminate rebuilding of your scraper during fine-tuning, Colly can read configuration options from environment variables. So you can modify its settings without a Golang development environment.
-
Proxies/proxy switchers If the address of scrapers has to be hidden proxies can be added to make requests instead of the machine running the scraping job. Furthermore, to scale Colly without running multiple scraper instances, proxy switchers can be used. Collectors support proxy switchers which can distribute requests among multiple servers. Scraping collected sites is still done on the machine running the scrapers. But the network traffic is moved to different hosts.
-
Storage backend and storage interface During scraping a various data needs to be stored and sometimes shared. To access these objects Colly provides a storage interface. You can create your own storages and use it in your scraper by implementing the interface required. By default Colly saves everything into memory. Additional Colly backend implementations are available for Redis and SQLite3.
-
Request queue Scraping pages in parallel asynchronously is a must have feature when scraping. Colly maintains a request queue where URLs found during scraping are collected. Worker threads of your collector are taking these URLs and creating requests.
-
Goodies The package named
extensionsprovides multiple helpers for collectors. These are common functions implemented in advance, so you don't have to bloat your scraper code with general implementations. An example extension isRandomUserAgentwhich generates a random User Agent for every request. You can find the full list of Goodies: https://godoc.org/github.com/gocolly/colly/extensions -
Debuggers Debugging can be painful. Colly tries to ease the pain by providing
Debuggersto inspect your scraper. You can simply write debug messages to the console by usingLogDebugger. If you prefer web interfaces, we've got you covered. Colly comes with a web debugger. You can use it by initializing aWebDebugger. See here how debuggers can be used: https://godoc.org/github.com/gocolly/colly/debug
We the team behind Colly believe that it has become a stable and mature scraping framework capable of supporting complex use cases. We are hoping for an even more productive future. Last but not least thank you for your support and contributions.
-
-
v0.0.0-20191128122054-e910bad0523128 Nov 2019 pre-releaseNothing published for this version
-
v0.0.0-20191016110616-e5e37682074216 Oct 2019 pre-releaseNothing published for this version
-
v0.0.0-20190812112318-8defd40054c512 Aug 2019 pre-releaseNothing published for this version
-
v0.0.0-20190702172252-2e4108fbc87002 Jul 2019 pre-releaseNothing published for this version
-
v0.0.0-20190523150245-d360e4bd7c2723 May 2019 pre-releaseNothing published for this version