Colly: فریمورکی اپن‌سورس، زیبا و سریع برای زبان Go به منظور Crawl کردن سایت‌ها

Colly: فریمورکی اپن‌سورس، زیبا و سریع برای زبان Go به منظور Crawl کردن سایت‌ها

Colly فریمورکی اپن‌سورس برای زبان برنامه‌نویسی Go است که این امکان را در اختیار دولوپرهای این زبان می‌گذارد تا هرگونه Crawler/Scraper/Spider که بخواهند توسعه دهند.

پیش از این که به توضیح بیشتر پیرامون این فریمورک بپردازیم، نیاز است تا کمی بیشتر در مورد ماهیت Crawler/Scraper/Spider بدانیم؛ برای این منظور، به آموزش آشنایی با مفهوم Screen Scraping مراجعه نمایید.

Colly این امکان را در اختیار دولوپرهای زبان برنامه‌نویسی گو می‌گذارد تا به سادگی بتوانند از وب‌سایت‌های مختلف دیتای مد نظر خود را استخراج کنند. برخی از عمده‌ترین قابلیت‌های این فریمورک عبارتند از:
- API ساده
- سرعت بالا
- قابلیت سِت کردن حداکثر تعداد ریکوئست‌ها برای هر سایت
- مدیریت خودکار کوکی و سِشن
- قابلیت اسکرپینگ موازی
- امکان کَش کردن دیتا
- قابلیت اِنکود کردن ریسپانس‌های یونیکد نشده
- قابلیت پشتیبانی از Robots.txt
- پشتیبانی از App Engine گوگل

آنچه در ادامه ملاحظه می‌کنید، نمونه سورس‌کد نوشته شده با این فریمورک است:

func main() {
	c := colly.NewCollector()

	// Find and visit all links
	c.OnHTML("a", func(e *colly.HTMLElement) {
		e.Request.Visit(e.Attr("href"))
	})

	c.OnRequest(func(r *colly.Request) {
		fmt.Println("Visiting", r.URL)
	})

	c.Visit("http://go-colly.org/")
}

لازم به ذکر است که Colly به صورت کاملاً رایگان و اپن‌سورس در اختیار علاقمندان در ریپازیتوری Colly در گیت‌هاب قرار گرفته است.