2010-05-19 3 views
0

Я относительно новый (как в течение нескольких дней) для Python - я ищу пример, который покажет мне, как отправить форму на сайт (скажем, www.example.com) ,POSTing формы с использованием Python и Curl

Я уже знаю, как использовать Curl. Infact, я написал код C+++, который делает то же самое (т. Е. POST-форму с помощью Curl), но мне хотелось бы получить некоторую начальную точку (несколько строк, из которых я могу построить), что покажет мне, как это сделать, используя Python.

+0

Ответ на urllib2 является наиболее распространенным и путинским, и вы должны придерживаться этого, если ваши потребности просты. Однако PyCurl стоит исследовать, есть ли у вас более серьезные потребности и вы хотите одновременно управлять несколькими параллельными соединениями. –

ответ

2

Вот пример использования URLLIB и urllib2 как для POST и GET:

POST - Если urlopen() имеет второй параметр, то это запрос POST.

import urllib 
import urllib2 

url = 'http://www.example.com' 
values = {'var' : 500} 

data = urllib.urlencode(values) 
response = urllib2.urlopen(url, data) 
page = response.read() 

GET - Если urlopen() имеет один параметр, то это запрос GET.

import urllib 
import urllib2 

url = 'http://www.example.com' 
values = {'var' : 500} 

data = urllib.urlencode(values) 
fullurl = url + '?' + data 
response = urllib2.urlopen(fullurl) 
page = response.read() 

Вы также можете использовать curl если вы называете его помощью os.system().

Вот некоторые полезные ссылки:
http://docs.python.org/library/urllib2.html#urllib2.urlopen
http://docs.python.org/library/os.html#os.system

+0

+1 для фрагмента. Ах, так что мне не обязательно ломаться. У меня есть 2 вопроса. 1). Как вы определяете метод HTTP, то есть POST вместо GET? 2). Предположительно, это аналогичный код, который вы бы использовали для «извлечения» страницы из URL-адреса в память (скажем, до его разбора)? – morpheous

+0

1) Я редактировал сообщение, чтобы включить пример как POST, так и GET. 2) Ответ, возвращаемый с 'urlopen()', является файловым объектом содержимого, возвращаемого с сервера. Затем вы можете проанализировать этот контент, используя ваш любимый парсер (BeautifulSoup) или свои собственные методы.Надеюсь это поможет – tdedecko

0

Есть два основных Python пакетов для автоматизации веб-взаимодействия:

  • Mechanize
  • Twill

    Twill имеет APPA он не обновлялся уже пару лет и, похоже, был с версией 0,9 с декабря 2007 года. Механизм показывает изменения и релизы всего несколько дней назад: 2010-05-16 с выпуском версии 0.2.1.

    Конечно, вы найдете примеры, перечисленные на соответствующих веб-страницах. Twill по сути предоставляет простой интерпретатор shell, в то время как Mechanize предоставляет класс и API, в которых вы, например, устанавливаете значения формы, используя, например, инструкции типа Python (__setattr__()). Оба используют BeautifulSoup для разбора HTML-кода реального мира (sloppy tag soup). (Это настоятельно рекомендуется для работы с HTML, с которым вы сталкиваетесь в дикой природе, и сильно разочаровывается в своем собственном HTML, который должен быть написан для прохождения стандартов, подтверждающих, проверяющих, парсеров).

Смежные вопросы