
Evgeny
29.06.2016
08:15:11
сам json
содержимое pattern надо оставить строкой

Den
29.06.2016
11:19:49
Строго не судите, я можно сказать только начал разбираться в программировании. Вопрос, почему не могу отпарсить файл: package main
import (
"fmt"
"github.com/PuerkitoBio/goquery"
"strings"
)
func main() {
html_code := strings.NewReader("<tr><td>Row 1, Column 1</td><td>Row 1, Column 2</td></tr><tr><td>Row 2, Column 1</td><td>Row 2, Column 2</td></tr>")
doc, _ := goquery.NewDocumentFromReader(html_code)
doc.Find("tr").Each(func(i int, s *goquery.Selection) {
title := s.Find("td").Text()
fmt.Println(s.Length())
fmt.Printf("Review %d: %s\n", i, title)
})
}
вот на Плейграунде, но там не работает из за стороннего пакета https://play.golang.org/p/6kcXAQMlhq

Google


Den
29.06.2016
11:20:47
Так вот работает package main
import (
"fmt"
"github.com/PuerkitoBio/goquery"
"strings"
)
func main() {
html_code := strings.NewReader("<html><body><table><tr><td>Row 1, Column 1</td><td>Row 1, Column 2</td></tr><tr><td>Row 2, Column 1</td><td>Row 2, Column 2</td></tr></table></body></html>")
doc, _ := goquery.NewDocumentFromReader(html_code)
doc.Find("tr").Each(func(i int, s *goquery.Selection) {
title := s.Find("td").Text()
fmt.Println(s.Length())
fmt.Printf("Review %d: %s\n", i, title)
})
}
Как проще, респонс брать в стринг, добивать до HTML (добавить теги html, body, table) и потом парсить? Либо другие варианты есть?
если просто закрыть таблицу тегами package main
import (
"fmt"
"github.com/PuerkitoBio/goquery"
"strings"
)
func main() {
html_code := strings.NewReader("<table><tr><td>Row 1, Column 1</td><td>Row 1, Column 2</td></tr><tr><td>Row 2, Column 1</td><td>Row 2, Column 2</td></tr></table>")
doc, _ := goquery.NewDocumentFromReader(html_code)
doc.Find("tr").Each(func(i int, s *goquery.Selection) {
title := s.Find("td").Text()
fmt.Println(s.Length())
fmt.Printf("Review %d: %s\n", i, title)
})
}
то тоже работает
Все трудятся?
ау


Daniel
29.06.2016
11:27:41
а?

Den
29.06.2016
11:28:48
Не правильно поставлен вопрос?

Daniel
29.06.2016
11:33:31
многабукв
не увидел вопроса

Dmitry
29.06.2016
11:34:19
я так понимаю он хочет чтото типа beatifulsoup для го
так goquery и есть

Den
29.06.2016
11:37:50
goquery не находит теги tr и td если не закрыть тегами table

Denis
29.06.2016
14:07:33
Парни, кто с Concourse CI работал?

Google

Kirill
30.06.2016
00:08:08

Den
30.06.2016
03:47:12

Kirill
30.06.2016
06:01:40

Den
30.06.2016
06:01:58
в бд забрать значения
просто на сервере данные отдаются в респонсе куском таблицы html

Kirill
30.06.2016
06:04:44
звучит так, будто ты пытаешься распарсить ответ внутреннего api VK

Den
30.06.2016
06:42:30
не знаю какой апи у вконтактика

Kirill
30.06.2016
06:46:07
похожий.

Den
30.06.2016
07:17:05
Я просто не могу разобраться с типами которые нужно провернуть во всей махинации. http.Get получает *Response, Body который мне нужен типа io.ReadCloser, goquery надо передать io.ReadCloser, но с внесенными изменениями (добавить открывающий и закрывающий теги <table>) а как io.ReadCloser перевести в string не додумаюсь.
все, нашел

Lev
30.06.2016
08:56:57
вот же ж
http://fmi.golang.bg/topics/253
интересно, в результате-то у них получился tox-клиент или таки фиг?

Dmitry
02.07.2016
09:03:00
привет всем!
кто как взаимодествует с кроном в го приложениях? или обходитесь без крона?

[Anonymous]
02.07.2016
09:04:42
https://github.com/robfig/cron
сам не юзал её

Kirill
02.07.2016
09:05:11
а зачем тебе крон?

Dmitry
02.07.2016
09:05:30

Kirill
02.07.2016
09:06:27
но почему не горутина с тикером?

Dmitry
02.07.2016
09:11:32

Kirill
02.07.2016
09:12:12
для таких задач - скорее всего, выбрал бы ее, да

Google

Dmitry
02.07.2016
09:21:22

cptn_foxmk
02.07.2016
10:57:34
кто-то тут когда-то спрашивал про плагины для го-программ
https://appliedgo.net/plugins/

Lev
02.07.2016
11:52:34
спасибо, уже иду читать )

Dmitry
02.07.2016
14:56:39
а никто не увлекается машинным зрением? может группа какая есть в телеграмме?)

Alexey
02.07.2016
15:05:16
выделением стилей или просто распознаванием образов?

Dmitry
02.07.2016
15:09:20
просто распознаванием образов

cptn_foxmk
02.07.2016
17:28:49
у Дениела Шиффмана сейчас стримы по основам компьютерного зрения, интересно посмотреть
но эт если база интересует
https://m.youtube.com/user/shiffman/videos

Dmitry
02.07.2016
19:35:23

[Anonymous]
02.07.2016
20:35:39

Vladimir
02.07.2016
21:08:54
Ребят. Если делать range и из него получать map[string]bool, то на выходе мы получаем копию или указатель на объект?
Ибо хочу в цикле как то влиять на объект, но вот думаю, хватит простого изменения параметра или делать перезапись?

Alexander
02.07.2016
21:09:34

Kirill
02.07.2016
21:44:30

Vladimir
02.07.2016
21:45:32
Замены происходят довольно болезнено. Хотелось бы гибкий вариант. Попробовал использовать тот же container/list, чуть проще конечно, но это вам не std::vector(а как раз хотелось бы его аналог). Раздражает именно отсутствие обращения к листингу через индексы. Может кто знает какие нибудь удобные контейнеры от сторонних авторов, так же удобные варианты реализации замены объекта в container/list или map[object]type?

Kirill
02.07.2016
21:47:41
так. я нихрена не понял. что ты хочешь сделать?

Vladimir
02.07.2016
21:51:30
У меня есть map[object]bool, где object - это структура. Мне нужно обращаться к нужной структуре и где нужно изменять данные. Изменять так, чтоб эффект сохранялся в map[object]bool. В структуре есть chan-ы, поэтому замены в виде перезаписи мне очень неудобны, вот теперь думаю как мне быть. Так же рассматриваю всякие аналоги хранения этих структур

Maksim
02.07.2016
22:04:30
Может я не очень понимаю конечную задачу, но зачем ради 1 bool кидать структуру в индекс map? Почему этот bool не сделать отдельно или полем структуры и не работать с map[...]*struct?

Vladimir
02.07.2016
22:06:24
Насчет map[...]*struct, можете кинуть небольшой example? Ибо не особо понимаю как это будет работать

Google

cptn_foxmk
02.07.2016
22:12:10
зачем в принципе тут мапа у тебя?
какая цель?

Admin
ERROR: S client not available

cptn_foxmk
02.07.2016
22:14:34
сорян, случайно

Kirill
02.07.2016
22:14:38
?

Vladimir
02.07.2016
22:18:49
Напишу немного подробнее. Пишу я небольшое сетевое приложение. Цель приложения простая - игра камень, кожницы, бумага. Подключается один человек, создается комната, после ожидается второй человек, и добавляется в свободную комнату, если свободных нет, то создается новая комната. Комната - это структура с листингом клиентов, max_players =2;. Так вот, так как комната не одна, и нужно иметь возможность обращаться к комнате, дабы добавить второго человека - приходится хранить комнаты в каком либо контейнере.
Вот тут я и пришел в ступор, так как не могу понять - как можно удобно хранить структуры(комнаты), с дальшейним и удобным изменением, добавлением и удалением элементов из контейнера
В Golang новенький, поэтому могу чего-то не понимать. Заранее спасибо

cptn_foxmk
02.07.2016
22:19:46
а слайс чем не угодил?
над ним можно обертку сделать с нужными методами на крайний случай
не слайс, а массив обычный в смысле, []foo.Room

Vladimir
02.07.2016
22:22:26
В slices можно обращаться к элементам по указателю или как то так? Что бы изменение было прямое, то бишь сразу на структуру, либо же чтоб был прямой доступ к chan, а не копия

cptn_foxmk
02.07.2016
22:23:17
конечно, посто массив указателей

Vladimir
02.07.2016
22:24:52
Спасибо! Буду сейчас пробовать. А то как этот map и container/list увидел, сразу побежал пробовать, но как оказалось пошел я не туда куда нужно

Igor
03.07.2016
10:37:18
а удалять комнату ты как будешь?

Kirill
03.07.2016
10:39:58

Igor
03.07.2016
10:40:37
ну, из map просто: delete(m, k)
k — айдишник или что-то такое

Kirill
03.07.2016
10:42:25
slice = append(slice[:i], slice[i+1:]...)
в чем сложность?

͏
03.07.2016
10:44:28

Google

Kirill
03.07.2016
10:44:51
оберни в `

͏
03.07.2016
10:45:44

Kirill
03.07.2016
10:46:01
а есть еще такое
а ты о
таком
?
да, о таком

Igor
03.07.2016
10:48:20
я не про язык, а про.. алгоритмы что ли.
slice = append(slice[:i], slice[i+1:]...)
в чем сложность?
нужно пройтись по всему слайсу, найти нужную комнату и удалить её.

Daniel
03.07.2016
10:53:45
при этом удалить - это тот еще гемор