@rudepython

Страница 379 из 1719
Eugine
06.05.2017
17:23:56
а можно ссылку?

Zart
06.05.2017
17:23:57
при этом линк <a href="www.ya.ru"> считался линком на сайт. любой нормальный браузер это за относительный путь посчитает

Alexey
06.05.2017
17:24:18
Это не линк на сайт.

Нет схемы — считается путём к тому где мы.

Google
Alexey
06.05.2017
17:24:43
Нет схемы — это relative. Есть — absolute.

Zart
06.05.2017
17:25:59
https://stepik.org/lesson/%D0%9E%D0%B1%D0%B7%D0%BE%D1%80%D0%BD%D0%BE-%D0%BE%D0%B1-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%D0%B5-http-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B-html-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B-%D0%B8-requests-24471/step/7?course=Python-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D1%8B-%D0%B8-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5&unit=6780

Ох, бля, смотрю другие решения

Страшно становится

Хех, автор написал в примечании: одна из самых сложных задач курса)

Вот решение богов(нет): import requests, re refs = [ref[1] for ref in re.findall(r'a.+ref=[\"\'](\w+://)*([^:/]+\.\w+)[:/]*.*[\"\']', requests.get(input()).text)] for s in sorted(set(refs)):print(s))

ни проверки на открывающую угловую скобку (т.е. ловить будет и посреди текста) и точка, т.е. будет ловить не только <a, но и <abbr, <address и что угодно

а [\"\'] будут ловить и косяки типа href="foo'

и гриди поиск будет ловить в <a href="url1"><a href="url2"> не (урл1,урл2), а _url1"><a href="url2_

короче кривейший регэксп

и пробелов вокруг = почему-то нельзя. это парсер хтмл вообще или чо?

короче автор того теста уёбок

Google
Alexey
06.05.2017
17:26:59
Говно какое-то.

Удваиваю Зарта, что говно.

Zart
06.05.2017
17:27:10
при этом в комментах он там где-то пишет что решать надо именно регэкспами а что надо делать с мудаками которые парсят хтмл регэкспами?

правильно, пиздить ссаными тряпками и выгонять из профессии

Alexey
06.05.2017
17:27:50
Не согласен, заводить шарманку с lxml.etree из-за текста где пара ссылок — как-то до хуя делов.

Zart
06.05.2017
17:28:10
при некоторых условиях можно регэкспить, да

Alexey
06.05.2017
17:28:14
С другой стороны проще а теги дёрнуть, href атрибуты собрать в сет, сверху filter посадить для прочёса от говна и готово.

Zart
06.05.2017
17:28:21
но не выдирание аттрибутов тэгов произвольного говносупа

Alexey
06.05.2017
17:28:30
Но вот чтобы такое вот дерьмище как ты показал — на хуй?!

Zart
06.05.2017
17:29:01
всё что в хреф= выдирается в три строки: import sys, os, lxml.html, urllib.parse page = lxml.html.parse(sys.stdin) urls = [urllib.parse.urlsplit(url) for url in page.xpath('//a/@href')]

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

Alexey
06.05.2017
17:29:14
Так но.

Zart
06.05.2017
17:29:19
я собсно решил через урлпарс

Alexey
06.05.2017
17:29:19
xpath вообще всему голова.

Zart
06.05.2017
17:29:33
но пришлось еще делать хак для случая когда протокол не указан

тогда урлпарс его из нетлока в патх перекидывает

не то чтобы он совсем не прав

Stanislav
06.05.2017
17:30:01


Говно

Zart
06.05.2017
17:30:28
скорее (ha)+

Google
Alexey
06.05.2017
17:30:37
Да.

Zart
06.05.2017
17:30:37
потому что у тебя с * будет матчить и 0 повторов

Alexey
06.05.2017
17:30:47
Потому что (ha)* сработает и на строке на хуй

Zart
06.05.2017
17:30:47
поэтому третий и попал, а не должен

Stanislav
06.05.2017
17:30:47
Ааа

Zart
06.05.2017
17:32:32
субботние онгоинги самые клёвые

*срулил смотреть свежаки*

Alexey
06.05.2017
17:58:18
Боты в чяти.

Roman
06.05.2017
18:02:38
https://pbs.twimg.com/media/C-R5wm0UQAADBng.jpg:large
Не вижу особенно смешного

Petr
06.05.2017
18:03:12
Anatoly
06.05.2017
18:03:25
Не вижу особенно смешного
а кто-то говорил про смешное?

Roman
06.05.2017
18:06:53
Тоже так пишете?
Ну, синтаксис шаблонов своеобразный

Anatoly
06.05.2017
18:07:05
Ну, синтаксис шаблонов своеобразный
это не синтаксис шаблонов.

Roman
06.05.2017
18:07:07
Но питончиг догоняет по скобкам

Anatoly
06.05.2017
18:07:21
это кусок кода для копипасты и search-replace. в го нет шаблонов.

Roman
06.05.2017
18:07:53
это кусок кода для копипасты и search-replace. в го нет шаблонов.
Я знаю что нет. Но там вроде как про rust еще было

Stanislav
06.05.2017
18:08:56
смекалочка ГОвноедов

Anatoly
06.05.2017
18:09:21
Я знаю что нет. Но там вроде как про rust еще было
про раст ничего не знаю. а на картинке классическое непонимание языка и его парадигм, кмк.

Stanislav
06.05.2017
18:10:34
не завидую его команде, которой придётся делать ревью его кода
или утонуть в копипасте или эрзац-шаблоны. в эрланге тоже хватало такого треша пока не изобрели эликсир

копипаст парадигма

Google
Anatoly
06.05.2017
18:14:04
а ещё можно не тащить шаблоны в язык, где можно и без них.

dmks
06.05.2017
18:25:07
при этом в комментах он там где-то пишет что решать надо именно регэкспами а что надо делать с мудаками которые парсят хтмл регэкспами?
А курсы на степике никто не рецензирует что ли? Придет человек программировать учиться, а его научат регэкспами хтмлки парсить и в какой то момент ему может быть очень больно.

Alexey
06.05.2017
18:25:41
Через это все проходят, кто с говнопохапе заходит.

Другое дело, что это выбивают сразу.

Zart
06.05.2017
19:13:12
https://twitter.com/tresseaver/status/860480258788773888 охебать

внезапно нашел инфу о том, на каком питоновом фреймворке был создан прототип гугла в стенфорде

Admin
ERROR: S client not available

Zart
06.05.2017
19:21:35
медуза конечно

dmks
06.05.2017
20:02:20
Ого, он есть в пайпи, последняя версия аж в 2005

Zart
06.05.2017
20:02:51
зопа2?

dmks
06.05.2017
20:02:55
И в исходниках файл TODO.txt

медуза :D

Zart
06.05.2017
20:03:12
так медуза теперь живет в самом питоне же

https://docs.python.org/3/library/asyncore.html

встречайте 8)

dmks
06.05.2017
20:03:39
омг

я этим даже пользовался один раз

Zart
06.05.2017
20:04:02
вот. а на этом был написан гугл изначально

http://infolab.stanford.edu/~backrub/google.html параграф 4.3, правда деталей не упомянуто

Google
Zart
06.05.2017
20:04:40
http://www.nightmare.com/medusa/ в первом абзаце упомянуто

"A single URLserver serves lists of URLs to a number of crawlers (we typically ran about 3). Both the URLserver and the crawlers are implemented in Python. Each crawler keeps roughly 300 connections open at once. This is necessary to retrieve web pages at a fast enough pace. At peak speeds, the system can crawl over 100 web pages per second using four crawlers. This amounts to roughly 600K per second of data." вот это и было нарисовано на медузе

dmks
06.05.2017
20:08:31
600к - 600кб? Или 600к это кол-во записей в секунду?

Zart
06.05.2017
20:08:52
килобайт в секунду

dmks
06.05.2017
20:09:29
в 98м мне было 8 лет :D

Zart
06.05.2017
20:09:30
не забываем, что это был гдето 2001й год

"However, at 100 million web pages we will be very close up against all sorts of operating system limits in the common operating systems (currently we run on both Solaris and Linux)"

Dmitry
06.05.2017
20:10:40
Слушайте, о том, что краулеры гугла на asyncore я где-то читал году в 2003

Zart
06.05.2017
20:11:02
ну да, это всё где-то в 2001-2002 и было

а на дворе тогда был питон 2.2

Dmitry
06.05.2017
20:11:53
в 98м мне было 8 лет :D
а мне 21 и я уже года два писал на питоне :))

Zart
06.05.2017
20:12:12
глянул в 2.2 - асинкоре и асинкчат там есть..

в 2.1 и 2.0 тоже

даже в 1.6

в 1.4 нет, в 1.5 уже есть..

т.е. в 98-99м гдето

т.е. 3-4 года фреймворку было на тот момент. вполне успели прилизать

Roman
06.05.2017
22:05:26
>недавно quora прислала: When looking at some data analysis code, I stumbled upon comments by someone along the lines of # Stop using anal as a variable! # Wherever I look I see anal this and anal that! # So please stop. # Use analyze or xbvvzr or whatever and not anal_insert or anal_check

Страница 379 из 1719