コード例 #1
0
ファイル: crawl_test.go プロジェクト: 5webvn/crawler
func Test_Scrape(t *testing.T) {
	ts := setupSinglePage()
	defer ts.Close()
	page, _ := crawler.Crawl(ts.URL)
	if len(page.Links) > 0 {
		t.Errorf("Page should not have links.")
	}
}
コード例 #2
0
ファイル: crawl_test.go プロジェクト: 5webvn/crawler
func Benchmark_Scrape5(b *testing.B) {

	b.StopTimer()
	ts := setupFiveSubpages()
	defer ts.Close()
	b.StartTimer()

	for i := 0; i < b.N; i++ {
		crawler.Crawl(ts.URL)
	}
}
コード例 #3
0
ファイル: crawl_test.go プロジェクト: 5webvn/crawler
func Test_ScrapeCircular(t *testing.T) {
	ts := setupCircularSubpages()
	defer ts.Close()

	page, _ := crawler.Crawl(ts.URL)
	if len(page.Links) != 1 {
		t.Errorf("Page should have 1 subpage.")
	}
	for _, p := range page.Links {
		if len(p.Links) != 1 {
			t.Errorf("Subpage should have 1 link.")
		}
	}
}
コード例 #4
0
ファイル: crawl_test.go プロジェクト: 5webvn/crawler
func Test_Scrape5(t *testing.T) {
	ts := setupFiveSubpages()
	defer ts.Close()

	page, _ := crawler.Crawl(ts.URL)
	if len(page.Links) != 5 {
		t.Errorf("Page should have 5 subpages.")
	}
	for _, p := range page.Links {
		if len(p.Links) > 0 {
			t.Errorf("Subpage should have no links.")
		}
	}
}
コード例 #5
0
ファイル: main.go プロジェクト: 5webvn/crawler
func crawl(url string, saveResults bool) {
	start := time.Now()
	page, job := crawler.Crawl(url)
	stop := time.Now()

	duration := stop.Sub(start)
	fmt.Printf("Starting from %s, crawled %d pages in %s\n", page.URL, job.PagesCrawled, duration)

	if saveResults {
		save(page)
		//a := graph(page)
		//filename := "/tmp/" + page.Path + ".dot"
		//ioutil.WriteFile(filename, []byte(a.String()), 0755)
		//fmt.Printf("Your .dot file is at: %s\n", filename)
	}
}