Возникла необходимость распарсить html-страницу .onion при помощи языка Go. Для реализации был взят фреймворк для скрапинга Colly, но для подключения к тору необходим прокси. В Colly есть соответствующая функция (SetProxyFunc()). По какой-то непонятной причине ни один из подбираемых адресов сервера (включая proxy самого тора на 127.0.0.1:9050) не позволяет подключиться к нужному ресурсу (вылезает то таймаут, то приходит eof вместо кода, то вообще непонятная ошибка nor Implement). Подскажите, пожалуйста, какое решение может быть у этой проблемы? Прилагаю скрины функции настройки прокси, функции парсинга и нескольких ошибок.
Функция установки proxy:
func SetLocalProxy(c *colly.Collector) {
rp, err := proxy.RoundRobinProxySwitcher("http://203.28.8.37:80")
if err != nil {
log.Fatal(err)
}
c.SetProxyFunc(rp)
}
Функция парсинга:
func Parsing(){
c := colly.NewCollector(colly.AllowURLRevisit())
c.SetRequestTimeout(0)
SetLocalProxy(c)
var leakDB string = "someURL"
c.OnHTML("a[href]", func(e *colly.HTMLElement) {
fmt.Println(e)
})
c.OnError(func(r *colly.Response, err error) {
fmt.Println("Request URL:", r.Request.URL, "failed with response:", r, "\nError:", err)
})
err := c.Visit(leakDB)
if err != nil {
return
}
}