Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 11, 2018 16:04:55

Oberoda
Зарегистрирован: 2018-04-01
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Отправка данных из файла.

Задача такова:
Есть несколько сайтов, на сайтах есть формы и кнопка \отправить\. Мне нужно из текстового файла на каждый из этих сайтов в каждую форму отправить первую строку из текстового файла и “нажать” кнопку \отравить\. Потом вторую строку для каждого сайта и т.д. Желательно не открывая все это дело в браузере и не создавая множество окон.
В принципе ничего сложного. Но у меня ровно ноль знаний об html, запросах get\post и т.д. Я слабо представляю как это все происходит. Наткнулся на библиотеку urllib. Мне показалось что она подходит для этой задачи. Столкнулся с тем что 99% уроков и литературы по urllib описывает процесс парсинга и последующего анализа данных, что для моей задачи не подходит.

Что мне нужно изучить для выполнения задачи? Может посоветуете материалы какие по urllib? Или я не в том направлении копаю?

Отредактировано Oberoda (Июнь 11, 2018 16:26:26)

Офлайн

#2 Июнь 12, 2018 00:09:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Отправка данных из файла.

Oberoda
Но у меня ровно ноль знаний об html, запросах get\post и т.д.
Открой консоль в браузере, там обычно видно все запросы. Нажатие на кнопку формирует запрос, сама кнопка и поля роли не играют никакой, они созданы только для удобства отправки запросов. Можешь поставить Firebug в браузер, но обычно хватает средств и без него всё узнать.

Дальше надо выяснить для каждого сайта его собственную форму запроса. На всех сайтах запросы могут формироваться по-разному, поэтому надо будет для каждого сайта сделать свою функцию отправки данных. А эти функции уже объединишь в класс “Отправляльщик”, где каждая функция становится методом. Так у тебя этот класс знает, как взаимодействовать с каждым сайтом точно и при этом все сайты могут полностью отличаться друг от друга.



Отредактировано py.user.next (Июнь 12, 2018 00:10:16)

Офлайн

#3 Июнь 12, 2018 01:05:55

Oberoda
Зарегистрирован: 2018-04-01
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Отправка данных из файла.

py.user.next
Спасибо за ответ!
Я суть улавливаю примерно, но мне надо что то почитать по этому поводу. Я понимаю что для каждого сайта надо отдельный запрос прописывать, но как это сделать не имею понятия. Есть какая либо литература или уроки по взаимодействию Python и Web? Может надо изучить какие то библиотеки для Python? Я просто не знаю от чего отталкиваться(
Из всего что гугл находит по теме- создание парсеров и т.д. Я обязательно все это прочитаю, только мне желательно чтоб ближе к моей конкретной задаче было что-то.

\Открой консоль в браузере\ я не знаю как это сделать в Win. Или это под Линуксом делается? (да, вот такой я тупой…)

Отредактировано Oberoda (Июнь 12, 2018 01:06:11)

Офлайн

#4 Июнь 12, 2018 01:26:25

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Отправка данных из файла.

Oberoda
\Открой консоль в браузере\ я не знаю как это сделать в Win. Или это под Линуксом делается?
Внутри браузера есть своя консоль, которая относится только к браузеру. В Firefox'е, например, она открывается через F12, хотя и в меню есть доступ к ней. Там можно смотреть, как загружаются страницы и из чего они состоят. Там же можно редактировать DOM (динамическая структура загруженной страницы), там же можно выполнять инструкции JavaScript. И там же есть вкладка, где можно смотреть выполняемые запросы при нажатии всяких кнопок на странице. Вот там можно узнать, что происходит (какой запрос составляется), когда нажимаешь на кнопку на странице сайта. Узнав этот запрос и как он составляется при нажатии на кнопку, эту информацию можно уже переносить в скрипт на питоне (или вообще на любом языке).

Oberoda
Может надо изучить какие то библиотеки для Python?
Ты можешь использовать urllib.request (в стандартной библиотеке). А можешь использовать requests (надо установить). Главное, тебе надо понять, как на сервер отправить HTTP-запрос. А для этого надо почитать инфу про HTTP-протокол. Можешь начать читать на вики, а потом оттуда уже перейти на RFC, где всё более подробно описано. В RFC очень технический язык, так сразу не разберёшься, но его можно использовать как полный справочник по всем командам, доступным в протоколе, и их эффектам.

tags: browser http



Отредактировано py.user.next (Июнь 12, 2018 01:35:58)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version