Size: a a a

2020 December 30

ES

Egor Suvorov in SPb Python
🚲 Oleh Kopyl UI/UX designer
Мне нужно достать куки для запроса на конкретный сайт.
Чем достать и в какой ситуации?

Если руками на своём компьютере (например, чтобы запихнуть в PostMan) — можно просто в настройках браузера посмотреть, там отдельное окно "Cookies" есть, можно по доменам искать.

Если кодом на своём сайте — то можно только узнать куки для своего сайта, это либо на стороне сервера (см. документацию на язык и фреймворк, от браузера не зависит, в Django одним способом делается, в Flask другим), либо на стороне клиента в JavaScript (document.cookie или берём какую-нибудь обёртку над этим делом из очередного JS-фреймворка)

Если кодом на своём сайте с чужого сайта — то никак.

Если плагином для хрома — то наверняка можно через внедрение кода в сайт.

Если кодом на питоне из профиля хрома — то наверняка есть готовая либа, либо надо reverse engineering файликов с профилем хрома и обновляются под каждое его минорное обновление. Наверняка там какой-то sqlite с не очень часто меняющейся схемой. Или protobuf, тогда веселее.
источник

SK

Sergio Keler in SPb Python
Раньше можно было у браузера получить из командной строки спецключиком.
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
Egor Suvorov
Чем достать и в какой ситуации?

Если руками на своём компьютере (например, чтобы запихнуть в PostMan) — можно просто в настройках браузера посмотреть, там отдельное окно "Cookies" есть, можно по доменам искать.

Если кодом на своём сайте — то можно только узнать куки для своего сайта, это либо на стороне сервера (см. документацию на язык и фреймворк, от браузера не зависит, в Django одним способом делается, в Flask другим), либо на стороне клиента в JavaScript (document.cookie или берём какую-нибудь обёртку над этим делом из очередного JS-фреймворка)

Если кодом на своём сайте с чужого сайта — то никак.

Если плагином для хрома — то наверняка можно через внедрение кода в сайт.

Если кодом на питоне из профиля хрома — то наверняка есть готовая либа, либо надо reverse engineering файликов с профилем хрома и обновляются под каждое его минорное обновление. Наверняка там какой-то sqlite с не очень часто меняющейся схемой. Или protobuf, тогда веселее.
В общем у Upwork есть master_access_token, который выдается после логина.

Я его достаю через браузер после логина для своих запросов (анализирую проекты), но вот как достать этот токен не заходя на сайт с браузера – понять не могу
источник

ES

Egor Suvorov in SPb Python
🚲 Oleh Kopyl UI/UX designer
В общем у Upwork есть master_access_token, который выдается после логина.

Я его достаю через браузер после логина для своих запросов (анализирую проекты), но вот как достать этот токен не заходя на сайт с браузера – понять не могу
Не факт, что он вообще существует, если браузер закрыт. Куки бывают "до закрытия браузера". Может, он выдаётся новый на каждый запрос (как CSRF-токены) и тогда его действительно нужно честно получать каждый раз (вероятно, в обмен на другую куку).

Возможно, через Upwork API может получиться — оно хотя бы для этого предназначено. Наверняка там и OAuth есть, чтобы надо было браузер только один раз открыть.
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
Egor Suvorov
Не факт, что он вообще существует, если браузер закрыт. Куки бывают "до закрытия браузера". Может, он выдаётся новый на каждый запрос (как CSRF-токены) и тогда его действительно нужно честно получать каждый раз (вероятно, в обмен на другую куку).

Возможно, через Upwork API может получиться — оно хотя бы для этого предназначено. Наверняка там и OAuth есть, чтобы надо было браузер только один раз открыть.
Upwork API требует чтобы твой загран паспорт был получен не более года назад, если хочешь получить к нему доступ.

Что ни API, то свои бзики для доступа к нему...
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
🚲 Oleh Kopyl UI/UX designer
Upwork API требует чтобы твой загран паспорт был получен не более года назад, если хочешь получить к нему доступ.

Что ни API, то свои бзики для доступа к нему...
Я уже подумываю селениумом делать логин через форму и уже доставать куки.

А то раз в день логиниться руками – такое себе удовольствие.
источник

DS

David Shiko in SPb Python
Всем привет. Вопрос про архитектуру:
Как следует совмещать 2 класса с аналогичными атрибутами?
Есть класс Article (у нее есть автор, время выпуска, ссылка и на источник и т.п.)
И есть класс ArticleMeta (метаинформация про статью, автор (кто добавил статью на сайт), время  добавления и т.п.). Очевидно, что многие атрибуты пересекаются, что с этим делать и кто от кого должен наследоваться?
Связь 1 ко 1.
источник

DS

David Shiko in SPb Python
С транзакциями должно быть тоже самое. Есть фактическое время транзакции, а есть время заноса транзакции в БД. Есть отправитель (имя), а есть операционист (имя, кто занес транзацию в бд) и т.п.
То есть это все относится не только к пресловутым статьям.
Должен быть какой то паттерн ...
источник

SK

Sergio Keler in SPb Python
David Shiko
Всем привет. Вопрос про архитектуру:
Как следует совмещать 2 класса с аналогичными атрибутами?
Есть класс Article (у нее есть автор, время выпуска, ссылка и на источник и т.п.)
И есть класс ArticleMeta (метаинформация про статью, автор (кто добавил статью на сайт), время  добавления и т.п.). Очевидно, что многие атрибуты пересекаются, что с этим делать и кто от кого должен наследоваться?
Связь 1 ко 1.
Сделай класс Персона со всеми атрибутами человека.
От него сделай Автор с атрибутами автора (опыт, ссылки, бла-бла).
Статью от автора наследовать не надо, автор - это атрибут статьи.
источник

SK

Sergio Keler in SPb Python
Я не в курсе твоих изысканий, но сделай класс Публикация с общими атрибутами и поведением, наследуй от него. Хммм
источник

DS

David Shiko in SPb Python
Sergio Keler
Сделай класс Персона со всеми атрибутами человека.
От него сделай Автор с атрибутами автора (опыт, ссылки, бла-бла).
Статью от автора наследовать не надо, автор - это атрибут статьи.
Идея интересная, но есть сущности, которые принадлежат системе, а не автору. Например количество лайков и время публикации (после проверки модератором)
источник

DS

David Shiko in SPb Python
Sergio Keler
Я не в курсе твоих изысканий, но сделай класс Публикация с общими атрибутами и поведением, наследуй от него. Хммм
То есть объединить данные и мета информацию?
источник

MA

Maxim Afanasev in SPb Python
David Shiko
То есть объединить данные и мета информацию?
А для чего вы их разделили?
источник

DS

David Shiko in SPb Python
Maxim Afanasev
А для чего вы их разделили?
Чаще всего я буду использовать только 1 класс.
Данные - это для отображения. Мета р для статистики. Все это предположительно конечно
источник

MA

Maxim Afanasev in SPb Python
David Shiko
Чаще всего я буду использовать только 1 класс.
Данные - это для отображения. Мета р для статистики. Все это предположительно конечно
Выглядит так, что мета вторична по отношению к данным. Зачем тогда дублировать что-то в мете, нельзя из основного объекта взять то, что содержится в нём?
источник

DS

David Shiko in SPb Python
Можно наверное, опять же, я думал, что вопрос частый и есть паттерн, но если нет - то нет, сильно код не пострадает думаю
источник

SK

Sergio Keler in SPb Python
David Shiko
Идея интересная, но есть сущности, которые принадлежат системе, а не автору. Например количество лайков и время публикации (после проверки модератором)
Лайки к публикации относятся. Не к автору.
источник

DS

David Shiko in SPb Python
Sergio Keler
Лайки к публикации относятся. Не к автору.
В данном случае это общее количество голосов, которые поставил пользователь (просто для статистики)
источник

SK

Sergio Keler in SPb Python
David Shiko
Можно наверное, опять же, я думал, что вопрос частый и есть паттерн, но если нет - то нет, сильно код не пострадает думаю
Породи статью от меты.
источник

DS

David Shiko in SPb Python
Sergio Keler
Породи статью от меты.
Статью от меты, или мету от статьи, или сделать их на 1-м уровне, вот в чем вопрос ...
источник