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

Страница 1200 из 1885
Maxim
26.01.2017
23:42:27
естеснвенно, дальше ничего не полуится

потому что .get работает с суповским классом тег

и изз него извлекает

следует переименовать if company_trim1 is None: xxxxxxxxxxxxx = company_trim2.get_text('title')

Google
Maxim
26.01.2017
23:44:04
чтобы сохранился тэг в переменной

53r63rn4r
26.01.2017
23:44:15
Ххххххххх классное имя переменной, по жопе бы надавать

Maxim
26.01.2017
23:44:41
и вместо " if name is not None:" прост 'if not name:'

ну блин, понятно, что прост, чтобы в чатик быстрее написать)

53r63rn4r
26.01.2017
23:45:13
Ну или если оно в контексте примера.. То ладно

Я уже понял

Filip
26.01.2017
23:46:20
Окей, получается, если-бы я перенёс часть кода с `link` над итерацией `company_trim1`

то, должно-бы было работать, так?

Maxim
26.01.2017
23:47:15
д

Filip
26.01.2017
23:47:21
не работает

точнее как, программа пробежалась, но `print ('link')

f

а нет, сек

Google
Filip
26.01.2017
23:48:32
а нет, всё работает. Я всё понял, спасибо большое

Maxim
26.01.2017
23:48:49
)

company_trim1 = row.find('a', class_="company-name") link = company_trim1 = row.find('a', class_="company-name") это кстати какая-то непоянтная жесть)

Filip
26.01.2017
23:49:40
Ну и потом, это мой первый код в жизни... :D

Maxim
26.01.2017
23:50:44
я про то, что по сути, написано: a = b c = a = b )

Filip
26.01.2017
23:51:08
Ну да, там ссылка просто меняется

а

понял, это я случайно

спасибо :D

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

Filip
27.01.2017
00:09:56
А что значит интеграция с браузером?
Ну, мне нужно будет сохранять html'и для парсинга

т.к. это линкед, я не смогу делать этого онлайн, грубо говоря

Filip
27.01.2017
00:10:44
linkedin.com

Stanislav
27.01.2017
00:11:04
linkedin.com
А почему не сможешь онлайн?

Filip
27.01.2017
00:11:37
Нужно логиниться

для того что-бы выполнить сёрч

Google
Stanislav
27.01.2017
00:12:01
Нужно логиниться
Можно залогинься через питон, если ты об этом

Для этого А) Использовать selenium, выполняет весь js код Б) Вкладка Network в dev tools в Chrome, разборка запросов и алгоритма логина. Отправка таких же запросов через requests

Filip
27.01.2017
00:14:48
Окей, но я подозреваю, если парсер за меня будет прыгать по страницам, аккаунт могут потенциально забанить, так ведь:?

Stanislav
27.01.2017
00:14:51
После логина в сессии сохранятся куки и сможешь получать доступ к страницам недоступным без логина

Filip
27.01.2017
00:15:45
Я не могу просто этого допустить, т.к. аккаунт проплаченый и не мой :)

Stanislav
27.01.2017
00:19:38
Окей, но я подозреваю, если парсер за меня будет прыгать по страницам, аккаунт могут потенциально забанить, так ведь:?
Да, если отследят что ты робот Для того чтобы не доказали что ты робот нужно полностью знать их алгоритм защиты. У тебя его нет и не будет (его там вообще может не быть) По этому защищаемся по максимуму - подделываем юзер агента, не шлем запросы часто, между запросами делаем рандомную паузу. Если там есть жс код который участвует в определение робота и сервер должен получать данные от него, а с юзанием реквестов жс код не выполняется, поэтому тоже могут заманить. Так что для секьюра лучше юзать селениум, но это костыльнее, менее производительно, зато более функционально (чего стоит обход динамически генерируемых элементов нужных для парсинга)

Поскольку в задаче стоит вопрос с конкретным акком - то прокси менять не стоит, могут подумать что взломали и тп.

Filip
27.01.2017
00:27:08
Имеешь ввиду сначала скачать все что нужно а потом уже парить?
Да. Я хотел просто это реализовать так - открыть страницу с сёрчем в браузере (то бишь, уже залогиненый), запустить скрипт и что-бы скрипт сохранил открытую страницу + все, что находятся в paggination

ну и, впоследствии, что-бы и уже скрапил из сохраннёных файлов html

Stanislav
27.01.2017
00:30:05
Да. Я хотел просто это реализовать так - открыть страницу с сёрчем в браузере (то бишь, уже залогиненый), запустить скрипт и что-бы скрипт сохранил открытую страницу + все, что находятся в paggination
Ну смотри, можно открыть страницу - спарсить нужные данные, чистые данные сохранить и пойти дальше по ссылке и снова повторить Можно пройтись по ссылкам, посохранять как хтмл, потом запустить другую утилиту которая все распарсит и выплюнет. Я хз зачем именно все сохранять, если можно сразу же перегнать в чистые данные

Stanislav
27.01.2017
00:32:09
Ну, так менее "палевно"? Или мы этого не знаем?
Мы не знаем, а вообще нет, процесс парсинга никак не отслеживается

Только получение страницы или выполнение действий на ней

Filip
27.01.2017
00:32:53
А сохранение?

Stanislav
27.01.2017
00:38:28
А сохранение?
А зачем сохранение? Зашёл на ссылку, нажал на кнопку, динамически сгенерировалась коробочка с серыми данными, нашёл коробочку, получил нужные ссылки например в ней (это все в оперативной памяти), записал в эксель и пошёл на следующую ссылку

Filip
27.01.2017
00:39:28
Но ведь если сохранение не отслеживается вообще никак - то это беспроигрышный вариант

Stanislav
27.01.2017
00:40:47
Я же сказал процесс парсинга никак не отслеживается

Google
Filip
27.01.2017
00:47:57
Я просто где-то слышал другие мнения, сам конечно ничего не утверждаю

Я ещё поинтересуюсь, но пока-что буду придерживаться твоего мнения

Stanislav
27.01.2017
00:49:50
Filip
27.01.2017
00:51:54
Ну, или так

u get my point

Я же сказал процесс парсинга никак не отслеживается
Значит, не имеет разницы Selenium или request?

Stanislav
27.01.2017
00:53:27
u get my point
Мне, на самом деле похуй Спросили - я ответил

Filip
27.01.2017
00:53:51
Admin
ERROR: S client not available

Stanislav
27.01.2017
00:54:10
Значит, не имеет разницы Selenium или request?
Динамически подгружаемые элементы И Алгоритмы защиты которые выполняют жс код Только в селениуме

Реквесты - голые запросы к серверу, по http/s протоколу

Filip
27.01.2017
00:54:42
Ага, я понял

Спасибо за инфу, доброй ночи :)

Stanislav
27.01.2017
01:07:55
Спасибо

Petr
27.01.2017
03:31:27
RabbitMQ имеет какое-нибудь ограничение на длину передаваемого сообщения?

Zloy geniy
27.01.2017
06:37:59
почему джанго админ не создает проект,пишет : "django-admin" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. хотя у других в видео все работает ) у меня создает проект только исключительно в корневой папке питона

Dan
27.01.2017
06:40:35
django-admin.py вроде надо запускать

Anonymous*
27.01.2017
06:42:35
значит файла такого нет

Dan
27.01.2017
06:48:11
django-admin.py устанавливается в область видимости используемого python если работает в virtualenv то его можно запусть после активации оного если работаете напрямую в системе то доступен везде

Google
Dan
27.01.2017
06:48:26
естественно доступен после установки django

Petr
27.01.2017
06:52:17
Не могу понять суть блокирующего ввода/вывода и ассинхронности. Мне по осям книжку читать?

Zloy geniy
27.01.2017
06:55:53
Igor
27.01.2017
06:56:21
файл есть, PATH/PYTHONPATH не тот?

./django-admin.py, в конце концов

Zloy geniy
27.01.2017
06:56:39
что???

Igor
27.01.2017
06:57:07
https://docs.djangoproject.com/en/1.10/faq/troubleshooting/#command-not-found-django-admin

Dan
27.01.2017
06:57:17
./django-admin.py, в конце концов
это только если запускать из папки bin/ =)

Igor
27.01.2017
06:57:22
я так, для примера

если PATH и прочие virtualenvы лениво настраивать

Zloy geniy
27.01.2017
06:58:02
ыыну я установил через пип виртуал

его надо активировать?

ну*

кстати пай чарм нормальная тема ))

Dmitriy
27.01.2017
07:21:01
yes

Petr
27.01.2017
07:34:59
http://www.tornadoweb.org/en/stable/guide/async.html#blocking
Ну тут поверхностно и про веб,а я про саму суть. Например простая запись на диск получается тоже блокирующий ввод/вывод?

Artem
27.01.2017
07:39:27
Ну тут поверхностно и про веб,а я про саму суть. Например простая запись на диск получается тоже блокирующий ввод/вывод?
да. и запись на диск, и считывание данных из сокета. блокирующая потому, что твоя функция, считывающие данные с диска, сидит и ждёт, пока эти данные считаются, а потом уже продолжает работу. А можно пойти другим путём. Поставить while True, запустить считываение данных и внутри него проверять, считалось или нет. Если да, продолжать работу с этой функцией, а если нет, поделать что-то ещё какое-то время. Вот этот самый while True называется событийным циклом в асинхронщине.

Dmitriy
27.01.2017
07:40:43
Не стоит только забывать http://stackoverflow.com/a/2625565

Хотя в доке по торнаде это описано

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

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