Написание своего реггера на Python. Часть 2

Категории: Программирование Комментариев: 15

Пришло время второй статьи по этой теме, в которой я расскажу как написать простую программу отправки формы на сайте, и покажу, как это работает на примере Google Addurl. К этой статье нужно приступить после того, как вы установили всё что нужно.  Итак, для начала нужно запомнить простой список основных команд twill, для того, чтобы можно было дальше с ним работать. Итак:

go(‘url’) – команда перехода по конкретному адресу. В скобках указываем url.

show() – функция возвращает html код страницы, одновременно выводя его на экран. Например код html = show() присвоит переменной html код текущей страницы.

showforms() – выводит на экран все формы, которые есть на текущей странице. Это функция обычно используется на этапе написания программы для того, чтобы видеть, с какими формами мы будем работать. Что полезно – функция выводит и номера форм, которые вы будете в дальнейшем использовать.

formclear(’1′) – функция очищает форму под номером 1

fv(’1′, ‘name’, ‘value’) – функция заполняет поле формы каким-то значением. Первый параметр – номер формы, второй – имя поля, которое нужно заполнить, третий – значение поля.

submit() – функция сабмитит(отправляет) форму как при нажатии кнопки. В скобках можно указать, какую именно кнопку нужно нажать(цифрой).

Итак, с помощью этих основных команд мы уже можем написать программу addurl в поисковик google. Итак, смотрим код:

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. from twill.commands import *
  5. go("http://www.google.com/intl/ru/addurl.html")
  6. showforms()


Итак, мы видим что успешно перешли по заданному адресу(1) и ниже список форм. Нас интересует вторая форма(2), её нам и надо заполнить. Изменяем наш скрипт на:

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. from twill.commands import *
  5.  
  6. go("http://www.google.com/intl/ru/addurl.html")
  7. fv('2','q', 'http://google.com')
  8. fv('2','dq', 'This is google!')
  9. submit()

Итак, что мы сделали?

  1. Импортировали в программу нужную библиотеку
  2. Перешли по нужному адресу
  3. Заполнили поля нужной формы
  4. Отправили форму

В следущей части я расскажу о том, как работать со списками ссылок для addurl, выложу свой модуль для работы с сервисом распознавания капчи и покажу как работать с формами с капчёй.

А пока я писал этот пост iron-viper обновил и дизайн своего блога о сео.

Автор inlanger   @   22.02.2010 Комментариев: 15
Tags : ,
Комментарии
Feb 22, 2010
14:19
#1 acdel :

Потрясающий код, минимализм.
Тоже вот питончика хочу освоить с нуля)
Читаю, Марк Саммерфилд, Программирование на Python 3. Для нуба, пойдет? Стоит с нее начинать?

Author Feb 22, 2010
20:32
#2 inlanger :

Лучше начни читать про версию 2.6, так как третья пока не очень распространена, а под 2.6 и библиотек намного больше.

Feb 24, 2010
13:25
#3 iron-viper :

Все и вправду просто, как бы это мне дойти до питона)

Mar 3, 2010
21:01
#4 SanookDee :

лучше читай Лутца. "Изучаем питон", потом "Программирование на питоне". Со змеей и с мышью (типа зайцем)

Mar 16, 2010
12:58
#5 Misterio :

Всё просто, вот только вопрос: можно ли, чтобы twill не печатал свои "==> at http://localhost/" или "Note: submit is using submit button: name="login", value="Войти""?

Author Mar 21, 2010
15:14
#6 inlanger :

Можно, отредактируй сами библиотеки :)

Apr 1, 2010
13:06
#7 Alex :

Как заполнить форму, если showforms() выдает такое:
Form #1
## ## __Name__________________ __Type___ __ID________ __Value__________________
1 FormCharset hidden (None) iso-8859-1

В этой форме выдается запрос на ввод логина и пароля.

Author Apr 1, 2010
15:03
#8 inlanger :

В этой форме я не вижу логина и пароля. Или форма не та, или страница.

May 18, 2010
01:29
#9 yokotoka :
May 22, 2010
11:15
#10 alexandr :

проникся уважением к python, начну пожалуй изучать,
просьба: выкладывай побольше примеров по этому языку

Aug 1, 2010
19:51
#11 prepod2000 :

Спасибо, статьи очень помогли, все как просто, оказывается!

Aug 26, 2011
22:54
#12 стас :

Да, когда продолжение?

Dec 14, 2011
19:35
#13 Димас :

Давай продолжение! Так хорошо начал и затих! :) Готов даже заплатить!

Trackbacks to this post.
Leave a Comment

Следущая запись
«
Предыдущая запись
»


Zionn designed by ZENVERSE  |  In conjunction with Reseller Hosting from the #1 Web Hosting Provider - HostNexus.