Для париснга на Golang использую GoColly:
func main() {
c := colly.NewCollector()
start := time.Now()
// Find and visit all links
c.OnHTML("div.category-container", func(e *colly.HTMLElement) {
// e.Request.Visit(e.Attr("href"))
e.ForEach("div.category-label-block a.category-label-link", func(_ int, tournament *colly.HTMLElement) {
tournament.Request.Visit(tournament.Attr("href"))
e.ForEach("div.command div.member-name.nowrap a.member-link", func(i int, name *colly.HTMLElement) {
name.Request.Visit(name.Attr("href"))
})
})
})
// c.OnRequest(func(r *colly.Request) {
// fmt.Println("Visiting", r.URL)
// })
c.Visit("https://www.marathonbet.ru/su/popular/Tennis")
finish := time.Since(start)
fmt.Println(finish) // 43 секунды
}
Python:
import time
import requests
from bs4 import BeautifulSoup
start = time.time()
url = 'https://www.marathonbet.ru/su/popular/Tennis?cpcids=402555'
# get body response
response = requests.get(url).text
soup = BeautifulSoup(response, 'lxml')
for i in soup.find_all('div', 'category-container'):
print(i.find('a', 'category-label-link').get('href'))
for k in soup.find_all('div','bg coupon-row'):
print(k.find('a', 'member-link').get('href'))
finish = time.time()
print(finish - start) # 2 сек.
Такого ведь не может быть, я скомпилировал код на Golang.