@ru_python

Страница 7592 из 9768
Сергей
02.01.2019
09:43:13
Чтобы сделать, как хочешь ты, нужно немного переписать логику

Marperia
02.01.2019
09:46:09
У меня вопрос не совсем по питону, но раз уж я на нём пишу, решил задать его здесь. Есть задача запускать selenium на удалённом сервере, но сервер, сами понимаете, GUI не поддерживает. Эмулировать дисплей или использовать PhantomJS тоже не выход. Как запустить geckodriver в headless-режиме? Если ответ лежит в гугле по первой ссылке, то извините, я в глаза ебусь.

Maxim
02.01.2019
09:46:37
Чтобы сделать, как хочешь ты, нужно немного переписать логику
а на основании какого принципа изменять логику)?

Google
Andrii [R11]
02.01.2019
09:48:46
Ещё знакомый делал через заглушку под иксы как-то. Спрошу

Marperia
02.01.2019
09:48:53
У хрома headless режим есть
Да хрен бы с ним что есть, как включить-то?

Сергей
02.01.2019
09:50:55
а на основании какого принципа изменять логику)?
Нужно подумать, как постоянно добавлять новые задачи в евентлуп, не дожидаясь выполнения текущих, а выполненные обрабатывать. Но... Даже с синхронным кодом, с постоянным запросом будет проблемы с сайтом (блокировка)

Да хрен бы с ним что есть, как включить-то?
Тут не на питоне, но смысл должен быть понятен: https://developers.google.com/web/updates/2017/04/headless-chrome

Marperia
02.01.2019
09:55:49
Тут не на питоне, но смысл должен быть понятен: https://developers.google.com/web/updates/2017/04/headless-chrome
Ну что можно аргументы через command line передать это я знаю, только вот как это сделать из питона?

Сергей
02.01.2019
09:56:25
Я видел множество примеров по поиску python selenium chrome headless

Marperia
02.01.2019
09:57:47
Всё, нашёл, как сделать в фф. Всем спасибо.

Владимир
02.01.2019
10:57:06
а на основании какого принципа изменять логику)?
Надо начать с того, что машина, если это одно ядро, выполняет задачи последовательно. Все "одновременные" задачи исполняются за счет переключения контекста с высокой скоростью. Над голым железом есть несколько слоев абстракции: биос, пользовательская ос, интерпретатор питона. В последнем есть еще и гил. В питоне I/O задачи неблокирующиеся. Гил встречая такую старается передать управление на следующую, пока будет эта выполняться. Синхронная модель предполагает, что придется дождаться завершения запроса, получить результат и перейти к следующему. Асинхронная позволяет запустить соединение и перейти к следующей задаче. Если каждый раз устанавливать новое соединение или к разным ресурсам обращаться, это существенный прирост. Но есть же еще сеть, время обработки запроса хостом и т.д. Вот с учетом всех этих переменных и надо строить обработку

Sergey
02.01.2019
11:09:55
Maxim
02.01.2019
11:10:03
Надо начать с того, что машина, если это одно ядро, выполняет задачи последовательно. Все "одновременные" задачи исполняются за счет переключения контекста с высокой скоростью. Над голым железом есть несколько слоев абстракции: биос, пользовательская ос, интерпретатор питона. В последнем есть еще и гил. В питоне I/O задачи неблокирующиеся. Гил встречая такую старается передать управление на следующую, пока будет эта выполняться. Синхронная модель предполагает, что придется дождаться завершения запроса, получить результат и перейти к следующему. Асинхронная позволяет запустить соединение и перейти к следующей задаче. Если каждый раз устанавливать новое соединение или к разным ресурсам обращаться, это существенный прирост. Но есть же еще сеть, время обработки запроса хостом и т.д. Вот с учетом всех этих переменных и надо строить обработку
но вот же Сергей сделал асинхронно, но прироста не случилось "Нужно подумать, как постоянно добавлять новые задачи в евентлуп, не дожидаясь выполнения текущих, а выполненные обрабатывать." это звучит очень сложно для простой задачи получать текст странички

Google
Magzhan
02.01.2019
11:25:39
Какой помощь?

Maxim
02.01.2019
11:27:40
посмотри scrapy
так это ж то же самое, нет гайдов, как загружать одну и ту стра ницу)

Владимир
02.01.2019
11:35:36
зачем одну и ту же?

Alexandr
02.01.2019
11:41:58
Добрый день, друзья! Подскажите, пожалуйста ... Есть СПИСОК (импортированный из ***.txt): 742 Ветеринарные услуги 763 Сельско-хозяйственные кооперативные общества 780 Ландшафтные и садоводческие магазины 1520 Генеральные подрядчики - жилищное и торговое строительство 1711 Генеральные подрядчики по вентиляции, теплоснабжению, и водопроводу 1731 Подрядчики по электричеству 1740 Изоляция, мозаика, штукатурные работы, каменная кладка, облицовка плиткой В консоли он выводится по средством команды: f = open ("list.txt") Каким образом можно организовать поиск и вывод строки по его фрагменту? (напр. ввожу «742», выдаёт «Ветеринарные услуги».

Maxim
02.01.2019
11:45:06
зачем одну и ту же?
потому что мне надо загружать контент 1 и той же страницы, чтобы как можно быстрее среагировать на изменение оного)

Dark
02.01.2019
11:46:39
ну или оставить как есть и иф 12345 ин стринг - принт стринг и цикл

Ы.
02.01.2019
11:50:58
Вопрос на засыпку как-то можно получить быстро пайчарм про без покупки?

Ы.
02.01.2019
11:52:06
Студ аккаунт
Там долго морочиться нужно

Опять фоткать свой студенчский

и слать его куда,да ну

Влад
02.01.2019
11:52:25
Ну если есть почта, то не особо

Ы.
02.01.2019
11:52:52
Влад
02.01.2019
11:52:53
Почта @edu

Google
Никита
02.01.2019
11:52:54
Ы.
02.01.2019
11:52:57
пример?

Феерическая лень
знаешь,ну тип недоверие

Влад
02.01.2019
11:53:40
Какой домен универа ?

Почты

Maxim robox
02.01.2019
11:53:46
Там долго морочиться нужно
Они отвечают за час

Ы.
02.01.2019
11:54:28
Почты
ок,возьму с интернета и кину им

Влад
02.01.2019
11:54:37
Нет

Там нужно подтвердить, ввести код из письма

Ы.
02.01.2019
11:55:37
Ладно,щас буду смотреть

Просто у моего учебного заведения нет почты в примерном домене

как указано в брейн

Ы.
02.01.2019
11:56:45
в mit.edu

Ы.
02.01.2019
11:57:26
комьюнити версия
нужна возможность работы с джанго

Владимир
02.01.2019
11:58:09
нужна возможность работы с джанго
тогда тебе и ноутпад сойдет.

Ы.
02.01.2019
11:58:39
окай

Maxim
02.01.2019
11:59:52


Google
Сергей
02.01.2019
12:00:06
Выглядит как синхронный код
Абсолютно так. Это синхронный код с асинхронными методами. Ищем возможность запускать бесконечный цикл задач с определенным количеством запросов в секунду, с обработкой результатов по мере их возврата

Maxim
02.01.2019
12:00:32
мб тут мультипроцессинг поможет?

Сергей
02.01.2019
12:02:31
так тут можно использовать стандартные корутины. /—>send—> | | send—>send—>send->...
это понятно, хотелось бы "крошки печения", чтобы найти к примеру для этой задачи дорогу

Tishka17
02.01.2019
12:04:21
мб тут мультипроцессинг поможет?
Подозреваю, что даже треды помогут

Maxim
02.01.2019
12:04:54
не надо треды, на впс 1 ядро по идее

Сергей
02.01.2019
12:05:14
Подозреваю, что даже треды помогут
я думал об этом, если бы ребенок не захотел кушать, написал бы элементарный пример, там не сложно.

Admin
ERROR: S client not available

Tishka17
02.01.2019
12:05:28
Вообще не понял как связано

Maxim
02.01.2019
12:06:34
а, я перепутал их друг с другом

Tishka17
02.01.2019
12:06:54
С кем?

Maxim
02.01.2019
12:07:05
Multithreading Multiprocessing

Tishka17
02.01.2019
12:07:25
И все равно, при чем тут ядра?

Maxim
02.01.2019
12:07:46
multiprocessing library uses multiple CPU cores

Tishka17
02.01.2019
12:08:00
При наличии

Владимир
02.01.2019
12:08:15
не надо треды, на впс 1 ядро по идее
когда одно ядро треды еще более менее, когда их несколько будет плохо

Maxim
02.01.2019
12:14:18
from threading import Thread import requests import time class myClassA(Thread): def __init__(self): Thread.__init__(self) self.daemon = True self.start() def run(self): while True: r = requests.get('https://medium.com/_/api/users/913e7ed84452/profile/stream') print(r.status_code, time.time()) for i in range(10): myClassA()



Andrii [R11]
02.01.2019
12:15:39
смог выбить time paradox из вызова time.time() в разных потоках без синхронизации? 1| time: 10.003 2| time: 10.006 3| time: 10.001 Типа такого

Google
Maxim
02.01.2019
12:17:07
нет, а должен был?

Andrii [R11]
02.01.2019
12:17:31
такая ситуация очень вероятна.

Но если кто-то объяснит или опровергнет - было бы клево.

Maxim
02.01.2019
12:19:47
ну я выберу такую частоту, с которой они не будут меня блоичть

Владимир
02.01.2019
12:20:10
так а нафига тогда потоки?)))))

Maxim
02.01.2019
12:20:59
в смысле нафига без потоков 3 раза в секунду они не блочат с десятью потоками получается 30 раз в секунду, они не блочат пока что

Владимир
02.01.2019
12:23:51
интерпретатор)

Maxim
02.01.2019
12:24:16
просто не заметили пока
я не один их долблю) и что значит не заметили)? это ж автоматика решает, нет?

?? Eugene
02.01.2019
12:24:58
сервера можно настроить миллионом разных способов

Maxim
02.01.2019
12:27:08
но все равно не вижу, в чем тут проблема, если перестанут 200 отдавать, снижу количество потоков

Sergey
02.01.2019
12:27:13
я бы банил по айпи таких вот дудосеров ?

Maxim
02.01.2019
12:27:49
если бы у них были вебсокеты, все были бы только рады)

Сергей
02.01.2019
12:29:23
Чтобы вывод был не такой корявый, лучше использовать mutex from threading import Thread, Lock ... mutex = Lock() ... try: mutex.acquire() print(response.status_code, time()) finally: mutex.release() ...

Владимир
02.01.2019
12:30:44
Владимир
02.01.2019
12:31:18
если бы у них были вебсокеты, все были бы только рады)
никто не мешает keep-alive поставить и переиспользовать соединение

Maxim
02.01.2019
12:31:54
я в это не умею)

Страница 7592 из 9768