Вадим
делаю задачку у меня есть три воркера которые генерируют значения и передают их по каналу в другую горутину для вывода
Вопрос в какой момент закрывать канал?
Vladislav
Vasilii
lol kek git в каждый дом =)
Локальные облака гита в локальных куберах подерутся с глобальными облаками гита в глобальных кубернетах 😂
Stanislav
Danil
Всем привет, пытаюсь разобраться с указателями и возник вопрос. Зачем они вообще нужны если и без них все нормально отрабатывает?
Yegor
Emin Zalaev
Danil
пока не скажу насчет костыльно но при выполнении результат был одинаковый "Test"
Илья
Danil
Такс я понял) нужно больше почитать про указатели
Yegor
Andrey
Yegor
Yegor
Почему Указатель а не Pointer?
Dmitrii
в питоне всё под капотом ссылка
Dmitrii
он и так интерпритатор, а если еще в памяти будет сущности копить...
Andrey
чем ссылка от указателя отличается?
Айрат
Dmitrii
Айрат
Roman
Добрий день, подскажите как реализовать. Мне нужно вывести текст среднего размера, не хочу его помещать в main что бы не засорять код, куда его можно поместить и как вызвать в main?
Andrey
Roman
Roman
Andrey
Если можно тут давать ссылки, то вот простые примеры записи и чтения в/из файла
https://metanit.com/go/tutorial/8.3.php
kostyaBro
не всё ссылка
Там вроде все значение или нет.
Типо написал а=1 б=1 , у них одна ссылка, потом б=2 и это две ссылки
Артем
Всем привет. Кто может подсказать, почему при отправке запроса к авито (на страницу с объявами), она может отвечать тем, что забанила мне айпи или с ним какие то проблемы?
Поясняю.
На домашнем пк с динамическим айпи отправлял с большим таймаутом запросы, ожидаю, что придет статик хтмл. Приходит всегдс страница с проблемами айпи.
Попробовал с дефолтным клиентом, потом с какой то либой с гита ( хттп клиент ). Не работает.
Залил скрипт на cloud function ( aws lambda ) от яндекса, тоже самое.
Купил впску у яндекса ( два раза поменял айпи у впски), тоже самое =)
Самое интересное в том, что постман справляется даже с домашнего пк и скрипт на ноде(NodeJS), который делает гет запрос с либы axios тоже улетает стабильно всегда.
Подскажите, пожалуйста, куда копать 🤯
Артем
Не ну это
Всем привет. Кто может подсказать, почему при отправке запроса к авито (на страницу с объявами), она может отвечать тем, что забанила мне айпи или с ним какие то проблемы?
Поясняю.
На домашнем пк с динамическим айпи отправлял с большим таймаутом запросы, ожидаю, что придет статик хтмл. Приходит всегдс страница с проблемами айпи.
Попробовал с дефолтным клиентом, потом с какой то либой с гита ( хттп клиент ). Не работает.
Залил скрипт на cloud function ( aws lambda ) от яндекса, тоже самое.
Купил впску у яндекса ( два раза поменял айпи у впски), тоже самое =)
Самое интересное в том, что постман справляется даже с домашнего пк и скрипт на ноде(NodeJS), который делает гет запрос с либы axios тоже улетает стабильно всегда.
Подскажите, пожалуйста, куда копать 🤯
Так а чем наполнен твой запрос? Шапка какая?
Не ну это
ну или дай прямую ссылку, я руками попробую (на вкус)
Артем
скопировал курл с браузера, юзнул тулзу curl-to-go, отправил. Потом ради интереса убрал все куки и хедеры, отправил голый запрос (с постмана) и все равно работало, поэтому решил хедерами не засорять. На ноде скрипт тоже без хдеров шлет.
Не ну это
так а куда стучишься то? На свои объявления?
Артем
извиняюсь за линк, но попросили - https://www.avito.ru/moskva?p=2&q=%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D1%8B
Артем
в q=...лежит кверя закодированная ("telefony")
Не ну это
db;e lf
Не ну это
вижу да
Артем
получилось?
Не ну это
А мне сразу бан на лицо падает
Не ну это
👍
Артем
дауж
Andrey
получилось?
У меня и с VPN, и без запрос прошёл 🧐 Заголовки пустые.
Артем
Артем
Артем
это у них защита какая-то стоит, да?)
Не ну это
Но вообще, если тебе прям не часто нужно, на го, то попробуй хромдп
Артем
Aleks
К вопросу о тестовом задании для джуна, на парсинг авито, при этом не сообщая критерии срабатывания защиты и т.п. :) Джун гарипоттер. :)
Andrey
Aleks
Насколько знаю у Авито одна из самых сложных защит от парсинга.
Артем
да, неудивительно
Артем
просто меня смутило, что с разных клиентов по-разному улетает. Причем как-то стабильно все
Артем
с ноды и посмтана - да, с го - ни единого раза
Aleks
Aleks
Причем идеальная защита от парсинга не скажет сразу что она сработала, но в данных будет мусор валидный с точки зрения типа данных. И потом ересь в базе парсерщика...
Andrey
возможно под него создать отдельный пакет где он будет храниться как переменные?
1. Да, возможен такой вариант. Тогда нужно будет импортировать пакет.
2. Возможно использовать большой кусок текста в этом же пакете, но в другом файле. К примеру, есть файл my_application.go пакета main, и файл big_text.go пакета main (оба файла должны быть в одной директории). Тогда во втором файле можно объявить переменную или константу с текстом и использовать её в функции main пакета main в 1-м файле.
Roman
Andrey
Andrey
как похорошел го при собянине, а ареньше реально надо было gopath настраивать, потом были миллион пакетных менеджеров, каждый писал свой
Eugene
Ребзя, а сталкивался кто с парсингом выдачи гугла?
Кеш и новости нормально плюс минус идут а вот выдача, чет очень туго вечно отстреливает
Направьте на путь истенный куда копать
N
Ребят, всем 🖐, есть тут кто в fintech варится?
kostyaBro
N
kostyaBro
Илья
Sanity = nil
Sebor▂▅▇█▓▒░
anhckie
почему в консоли БД запрос выполняется, а через sql/database - нет?
BEGIN;
create table rows_to_keep
select edh.*
from exch_d_hist edh
LEFT JOIN curr c ON c.id = edh.curr_id
WHERE DATE_SUB(NOW(), INTERVAL 30 minute) <= edh.created_at;
truncate table exch_d_hist;
insert into exch_d_hist
select *
from rows_to_keep;
drop table rows_to_keep;
COMMIT;
const ctasDelete = `
create table rows_to_keep select edh.* from exchange_data_history edh LEFT JOIN currencies c ON c.id = edh.currency_id WHERE DATE_SUB(NOW(), INTERVAL 30 minute) <= edh.created_at; truncate table exchange_data_history; insert into exchange_data_history select * from rows_to_keep; drop table rows_to_keep;
`
func (q *CreateExchangeDataParams) CTAS() error {
ctx := context.Background()
tx, err := q.db.BeginTx(ctx, nil)
if err != nil {
fmt.Println(fmt.Sprintf("%#v", err))
return err
}
defer tx.Rollback()
_, err = tx.ExecContext(ctx, ctasDelete)
if err != nil {
fmt.Println(fmt.Sprintf("%#v", err))
return err
}
if err = tx.Commit(); err != nil {
fmt.Println(fmt.Sprintf("%#v", err))
return err
}
return nil
}
anhckie
"Error happened at CTAS: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'truncate table exch_d_hist; insert into exch_d_hist select *' at line 1"}