
V
03.04.2018
08:53:31
НО в браузере работает и та и другая ссылка

Pachvarsh
03.04.2018
08:53:50

Andrey ?
03.04.2018
08:53:51

Google

V
03.04.2018
08:54:09

Andrey ?
03.04.2018
08:54:12
Через курл проходит запрос?

Pachvarsh
03.04.2018
08:54:33

V
03.04.2018
08:54:36

Andrey ?
03.04.2018
08:55:58
Сразу с https вставь ссылку
Мало ли, вдруг редиректам не следует

V
03.04.2018
08:56:26

Andrey ?
03.04.2018
08:56:48
Ну, значит пробуй ставить заголовки и прочее ¯\_(ツ)_/¯
Юзерагент там и прочее

V
03.04.2018
08:57:00

Andrey ?
03.04.2018
08:57:22
Смотри сниффером что там происходит

Google

V
03.04.2018
08:57:25

Andrey ?
03.04.2018
08:57:38

V
03.04.2018
08:58:10

Andrey ?
03.04.2018
08:58:55
Ну, вайршарк например

V
03.04.2018
08:59:51
Ну, так могли настроить
wget без доп параметров скачивает и 1 и 2 url и внутри контент на месте, а requests не может?

Andrey ?
03.04.2018
09:00:14

V
03.04.2018
09:00:47
mechanicalsoup то же самое

Andrey ?
03.04.2018
09:03:11
(це не питон)

V
03.04.2018
09:05:47

Andrey ?
03.04.2018
09:06:25
УМВР (tm)

Igor
03.04.2018
09:51:10
Привет всем.
Подскажите, пожалуйста, в этом сообществе можно публиковать предложения по работе?

Egor
03.04.2018
11:28:37
только если это будет не обычный копипаст, а чтобы было полезно для участников

V
03.04.2018
11:29:02

Владимир
05.04.2018
07:18:51
А почему бы не воспользоваться systemd?

Andrey
05.04.2018
08:38:08
есть список пар типа [(1, "1"), (1, "2"), (2, "1"), (3, "2")]
Нужно получить словарь {1: ["1", "2"], 2: ["1"], 3: ["2"]} - есть способ сделать это одним выражением? (zip lambda генератор списков и т.д.)

Pavel
05.04.2018
09:00:36
Похоже на собеседование)
Я бы попробовал через defaultdict
Ещё надо описать поведение в случае с повторениями

Google

Aquinary
05.04.2018
09:15:16
Вы объекты класса или какие-либо переменные объявляете в начале функции или только в тот момент, когда начинаете использовать её?
obj1 = Obj1()
obj2 = Obj2()
# что-то делаем с obj1
# что-то делаем ещё
# что-то делаем ещё 2
# что-то делаем с obj2
или
obj1 = Obj1()
# что-то делаем с obj1
# что-то делаем ещё
# что-то делаем ещё 2
obj2 = Obj2()
# что-то делаем с obj2
?

Andrey
05.04.2018
09:26:39
Похоже на собеседование)
Не, это просто мне не хочется делать так
r = {}
for k, w in d:
if k not in r:
r[k] = [w]
else:
r[k].append(w)
Здесь еденственная проблема для генератора словаря - в 3 строчке кода - узнать были ли ключи уже добавлены в создаваемый словарь
Можно конечно заморочиться с генератором списков, возможно с несколькими for внутри, и обернуть все это потом в dict(), но хотелось бы более красивое решение

Aquinary
05.04.2018
10:10:43
Может кто знает конвертер из CSV в dict? Как-то впадлу свой велосипед изобретать
Задача единоразовая

Pavel
05.04.2018
10:51:50
Настолько единоразовая, что проще написать самому

Andrey
05.04.2018
10:52:48

Pavel
05.04.2018
10:53:29

Andrey
05.04.2018
10:54:01
Я и не просил оптимальное решение) мне просто интересно можно ли это реализовать в 1 пусть сложное выражение
проблема опять же в проверке есть ли уже ключ при добавлении

HW_51Rs
05.04.2018
11:06:31
@terehinAV Можно функцию написать проверки наличия в массиве, но не знаю, считается ли это уже подходящим для вас.

Andrey
05.04.2018
11:07:57
если это нельзя сделать в 1 строку то это не лучше цикла for) возможно это вообще нельзя реализовать в 1 строку. задачка на интерес, это не из задач собеседований еще раз повторюсь.

Aquinary
05.04.2018
11:14:39
XY?)))))

Knock
05.04.2018
18:58:15
Питонисты, а дайте пару советов по телеграмм боту. Допустим, мне нужно делать какие-то вещи шаг за шагом. Типа введи имя, фамилию, адрес и номер телефона. Все это оказывается можно сделать только с помощью converstation хендлера, разбросав код по разным функциям, поскольку мы имеем дело со state machine, то никак ли нельзя это обойти, чтобы ожидания ввода в одной функции не блокировало всю программу?

Alex
05.04.2018
18:59:07
там встроенный FSM

Knock
05.04.2018
19:00:12

Alex
05.04.2018
19:00:30

Knock
05.04.2018
19:00:42

Google

Knock
05.04.2018
19:02:36
там есть встроенный вроде как.
Или может реально забить и сделать все через converstation handler, просто это реально немного неудобно. Считай тебе нужно сделать стопицот функций, чтобы просто данные у пользователя забрать из инпута.

Alex
05.04.2018
19:08:50

Knock
05.04.2018
19:09:06

Alex
05.04.2018
19:09:20
гугли threading.Event

Knock
05.04.2018
19:09:32
https://pastebin.com/mKz8Rwpv

Alex
05.04.2018
19:13:24
https://pastebin.com/mKz8Rwpv
можно упороться сильнее.
пишешь функцию, которая лочит поток и дальше с отдельного хэндлера лови следующее сообщение, дергай event.set(), чем разблокируешь ранее забокированный поток и оттуда же можно вернуть новое полученное сообщение.

Knock
05.04.2018
19:14:49

Alex
05.04.2018
19:15:56

Knock
05.04.2018
19:16:04

Alex
05.04.2018
19:16:15
если нет, юзай тот ConversationHandler что там есть

Knock
05.04.2018
19:16:27
В гайдах для питона про это же есть, наверняка?

Alex
05.04.2018
19:16:44
если у тебя бот на начаьной стадии разработки и ничего толком нет, бери aiogram

Knock
05.04.2018
19:19:34
Ладно ,пошел читать про threading в питоне :)