LINUX.ORG.RU

Python web-bot, передача переменных между скриптами

 


1

1

Доброго времени суток,

Потребовалось написать веб бота, посчитал что у pythona есть довольно удобный функционал для этого.

На одном этапе возникла проблема, на первой странице (url) имеются уникальные данные, которые при обновлении страницы меняются: переход на вторую страницу с использованием уникальных данных на первой, не закрывая первую, парсинг каких либо данных со второй, возвращение на первую, заполнение формы на первой (представьте работу с окнами в гуи n браузера).

Видел urllib следующий образец http://pastebin.com/FcEh3Yrd

Но как видите, чтобы заполнить форму при помощи urllib, требуется загрузить страницу заново с новымы значениями в форме.

Варианты?



Последнее исправление: maxylopes (всего исправлений: 1)

Можно через flask реализовать. Там параметры передавать.

powerguy ★★★
()
Ответ на: комментарий от fedorino_gore

Я имел ввиду или два «urllib request», или два скрипта, один вызывает второй с параметрами, так-то нехотелось бы второй скрипт писать, чтобы тупо зайти на линк, но даже при попытке этого, у меня не получилось передать переменную :)

maxylopes
() автор топика

Что-то я не понял задачу. Ты получаешь url GET-запросом, парсишь форму, получаешь вторую страницу, парсишь данные с нее, дергаешь url из формы, но уже методом POST, передаая ему данные формы. Какие первые, вторые страницы? Какая перезагрузка страницы?

anonymous
()
Ответ на: комментарий от anonymous

1. Открываю url1, качаю капчу.

2. Открываю url2, декодирую капчу.

3. Возвращаюсь на url1, вставляю текст капчи, получаю ошибку, потому что по возвращению и заполнении форм на url1, страница рефрешнулась, и выдала новую капчу.

maxylopes
() автор топика
Ответ на: комментарий от maxylopes

Ты получаешь ошибку потому что капча привязывается к сессии. При первом запросе сохраняй все куки и значения в скрытых полях формы (если есть) в отдельные переменные, а при третьем запросе подставляй эти куки и скрытые значения вместе со своими.

Не по теме: рекомендую использовать библиотеку requests для таких автоматизаций - она попроще и поудобнее urllib

grazor ★★
()
Ответ на: комментарий от maxylopes

Совсем упоротый.
Загрузил страницу, сохранил все данные и токены из формы, разгадал капчу, отправил пост-запрос с данными.

NeverLoved ★★★★★
()

Но как видите, чтобы заполнить форму при помощи urllib, требуется загрузить страницу заново с новымы значениями в форме.

Уууу, друг, пока что Python не для тебя.

Варианты?

Попробуй начать с PHP.

ei-grad ★★★★★
()
Ответ на: комментарий от maxylopes

3. Возвращаюсь на url1

а зачем ты оттуда уходишь? на url2 ходи в другой сессии.

arkhnchul ★★
()
Ответ на: комментарий от ei-grad

Читал, не хотел скрипт переписывать, оказалось намного проще с mechanize. Спасибо!

maxylopes
() автор топика
Ответ на: комментарий от ei-grad

Теперь знаю. А теперь вопрос, есть линки на файлы, заходя на которые, тебе сразу выкидывают окно сохранения файла. Я знаю что после ввода капчи, мне дадут скачать файл, но не путем переадресации, а javascript или php скриптом. Как их сохранять?

maxylopes
() автор топика
Последнее исправление: maxylopes (всего исправлений: 2)
Ответ на: комментарий от IIIypuk

Тт, неважно, получилось. Повезло что сайт после ввода капчи, запоминает меня на некоторое время, и просто переходя на линк еще раз я получаю файл.

Обычный: retrieve(url) сработал.

Спасибо

maxylopes
() автор топика
Последнее исправление: maxylopes (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.