@python_beginnersЭта группа больше не существует

Страница 1084 из 1885
Evgen
08.01.2017
17:34:52
И так несколько раз

Igor
08.01.2017
17:35:32
таааак

failed to load external entity "<?xml version="1.0" encoding="UTF-8"?>
прикольно, а у меня работает %))

Johnnie
08.01.2017
17:36:37
O_O

Google
Johnnie
08.01.2017
17:36:49
lxml какой версии?

Evgen
08.01.2017
17:36:51
Так что насчёт моего вопроса?

Igor
08.01.2017
17:37:22
Так что насчёт моего вопроса?
а в чем вопрос-то заключается? как читать данные в питоне из stdin?

Evgen
08.01.2017
17:37:26
Нее

Как общаться с программой

Igor
08.01.2017
17:37:57
как запихнуть данные в другую программу, чтобы она их через stdin вытянула?

Evgen
08.01.2017
17:38:01
Максимум до куда я дошёл — вторая итерация

Igor
08.01.2017
17:38:39
да, потому что как только данные заканчиваются, отправляется то ли EOF, то ли NULL-байт, и данные более не читаются

lxml какой версии?
сорри, я спизднул. не читается. там надо файлоподобную хуйню подавать, а не строку или пользоваться fromstring

In [12]: xml_feed_url = 'https://www.coursera.org/sitemap~www~courses.xml' ...: xml = requests.get(xml_feed_url) ...: doc = etree.fromstring(xml.content) ...: In [13]: doc Out[13]: <Element {http://www.sitemaps.org/schemas/sitemap/0.9}urlset at 0x10e9868c0>

Johnnie
08.01.2017
17:41:09
def get_courses_list(url='https://www.coursera.org/sitemap~www~courses.xml'): return requests.get(url) def get_courses_list_tree(courses_list): return etree.XML(courses_list.content)

вот так взлетело вроде

пойду попробую пройтись по этой херне в цикле

Google
Igor
08.01.2017
17:41:41
ну я б таки fromstring заюзал

Denis
08.01.2017
17:42:18
Максимум до куда я дошёл — вторая итерация
Можно запускать как os.system('a | b | c')

Для более сложных операций есть модуль subprocess, там всякие штуки вроде Popen и PIPE

Denis
08.01.2017
18:18:23
В чем проблема?

b0g3r
08.01.2017
18:21:53
вот есть массив у меня. он может быть пустой, а может быть заполнен (неважно сколько элементов). как написать лучше конструкцию в ф-ии, которая будет возвращать 1 когда не пустой, а 0 когда пустой массив?
Вмешаюсь. Если это точно последовательность - то хватит обычного if seq, которое сработает если seq внезапно окажется True или числом отличным от нуля. Если же непонятно что это, то len(seq)>0 то что нужно

b0g3r
08.01.2017
18:23:14
В данном случае вообще непонятно зачем нужен has_digit. 0 и 1 это типа False и True? Тогда достаточно return not re.findall(..)

Ага

Johnnie
08.01.2017
18:23:44
просто в цикл вытащил этот иф из каждой ф-ии

b0g3r
08.01.2017
18:42:48
Johnnie
08.01.2017
18:43:15
проверки туда напихал все

b0g3r
08.01.2017
18:43:19
почему в сет?)

кстати, если интересно научиться, то вот такую задачу "регистрирования" функций можно делать через декораторы

Johnnie
08.01.2017
18:43:28
чтоб без дубликатов :D

ты предлагаешь в тупл?

b0g3r
08.01.2017
18:43:42
угу

Google
b0g3r
08.01.2017
18:43:51
т.к. декораторы выполняются в момент импорта

Denis
08.01.2017
18:44:48
Немного оффтопа: как решать задачу регистрации функций на с++?

b0g3r
08.01.2017
18:45:17
ну в данном случае - заносить их в какой-нибудь список

чтоб потом смотреть в него в get_password_strength

то есть все check-функции оборачиваешь в декоратор, и не надо париться над сетами/туплами, набиваемыми вручную

мне казалось, что я видел пример в "Python. К вершинам мастерства", но может и не там

а вообще оно гуглится по python registry decorator

Johnnie
08.01.2017
18:53:23
т.е. на каждую функцию-проверку вешать декоратор и внутри get_password_strength проходить по списку зарегистрированных?

Проксимов
08.01.2017
19:17:07
уже вот так переделал, проверили и закрыли таск))
Что за таск? Ты это для кого-то делаешь?

Johnnie
08.01.2017
19:17:20
https://devman.org

Проксимов
08.01.2017
19:19:02
https://devman.org
Хочешь так на работу устроиться?

53r63rn4r
08.01.2017
21:40:01
guys

help

2017/01/09 00:13:03 [error] 30589#30589: *238 connect() to unix:///tmp/uwsgi.sock failed (111: Connection refused) while connecting to upstream, client: 176.36.191.191, server: serbernar.in.ua, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///tmp/uwsgi.sock:", host: "serbernar.in.ua"

Johnnie
08.01.2017
22:18:34
ну было бы клево)
на будущее учту, спасибо)

b0g3r
08.01.2017
22:20:17
Получилось?

Johnnie
08.01.2017
22:26:01
если ты про декораторы, то не пробовал) пилю пока задачку по парсингу курсеры

Google
Johnnie
08.01.2017
22:31:23
Started at (UTC): 2017-01-08 22:30:17.196435 Finished at (UTC): 2017-01-08 22:31:13.134697 Elapsed: 0:00:55.938262

20 рандомных курсов парсит

столько времени

че-то надо прикрутить? мульти[процессинг/трединг]?

Denis
08.01.2017
22:33:16
Прикрути

Johnnie
08.01.2017
22:33:35
а какой из них? я помню тут был пример, но чето не найду пока

Denis
08.01.2017
22:33:42
Трединг

Процессинг не нужен

Vova
08.01.2017
22:34:54
Ку

Johnnie
08.01.2017
22:37:31
from concurent.futures import ThreadPoolExecutor with ThreadPoolExecutor(max_workers=5) as executor: executor.map(processing_function, list_of_urls)

вот вроде

эм ,бля

Started at (UTC): 2017-01-08 22:39:18.677907 Finished at (UTC): 2017-01-08 22:40:14.107720 Elapsed: 0:00:55.429813

это после прикручивания этого добра

:D

я что-то делаю не так?

b0g3r
08.01.2017
22:42:24
?

Johnnie
08.01.2017
22:43:09
ну как бы в 1 поток 55 сек, в 5 потоков 55 сек

b0g3r
08.01.2017
22:43:10
ну попробуй поиграться с количеством потоков

Johnnie
08.01.2017
22:43:11
так и должно быть?

Google
b0g3r
08.01.2017
22:43:24
почитай про GIL

если упростить, то задачки, которые используют процессор - не позволяют потокам в питоне работать эффективно

треды - эффективно для io-задачек

посмотри сколько времени тратится на загрузку странички - если оно мало от общего времени работы, то попробуй мультипроцессинг

может придёт ещё кто умнее и меня поправит

Johnnie
08.01.2017
22:56:47
<method 'read' of '_ssl._SSLSocket' objects> 862 45733 45733

профайлер сказал, что вот это жрет 81% времени

забью тогда пока

это я тупил :) не до конца переделал

courses_info_list = list() with ThreadPoolExecutor(max_workers=5) as executor: for course_info in executor.map(get_course_info, courses_urls): courses_info_list.append(course_info)

Started at (UTC): 2017-01-08 23:12:38.379916 Finished at (UTC): 2017-01-08 23:12:52.604903 Elapsed: 0:00:14.224987

20 воркеров - 5 сек 20 страниц обрабатывает

красота

tufedtm
08.01.2017
23:27:08
как все <item>...</item>, а именно содержимое атрибутов, вложенных элементов перенести в базу? с сохранением уровней вложенности (которая там разная) https://paste.ubuntu.com/23767479/ к каком направлении смотреть?

Romka
08.01.2017
23:28:27
Регулярки

Но нужно попотеть

Или, можешь проходить циклом каждую строку

Johnnie
08.01.2017
23:32:54
регулярками тут охуеешь имхо

Страница 1084 из 1885

Эта группа больше не существует Эта группа больше не существует