Программная форма Отправить - PullRequest
2 голосов
/ 26 декабря 2008

Я хочу очистить содержимое веб-страницы. Содержание создается после заполнения и отправки формы на этом сайте.

Я читал о том, как очистить содержимое / веб-страницу конечного результата - но как мне программно отправить форму?

Я использую python и прочитал, что мне может понадобиться получить исходную веб-страницу с формой, проанализировать ее, получить параметры формы и затем выполнить X?

Может кто-нибудь направить меня в правильном направлении?

Ответы [ 4 ]

2 голосов
/ 26 декабря 2008

Из аналогичного вопроса - options-for-html-scraping - вы можете узнать, что с Python вы можете использовать Beautiful Soup .

Beautiful Soup - это синтаксический анализатор Python HTML / XML, разработанный для быстрых поворотных проектов, таких как очистка экрана. Три функции делают его мощным:

  1. Прекрасный суп не захлебнется, если вы дадите ему плохую разметку. Это дает дерево разбора, которое имеет примерно такой же смысл, как и ваш исходный документ. Обычно этого достаточно, чтобы собрать нужные данные и убежать.
  2. Beautiful Soup предоставляет несколько простых методов и Pythonic идиом для навигации, поиска и изменения дерева разбора: инструментарий для разбора документа и извлечения того, что вам нужно. Вам не нужно создавать собственный анализатор для каждого приложения.
  3. Beautiful Soup автоматически конвертирует входящие документы в Unicode и исходящие документы в UTF-8. Вам не нужно думать о кодировках, если только в документе не указана кодировка, а Beautiful Soup не может ее автоматически определить. Тогда вам просто нужно указать оригинальную кодировку.

Необычное имя привлекло внимание нашего хозяина , 12 ноября 2008 года.

2 голосов
/ 26 декабря 2008

вам нужно сгенерировать HTTP-запрос, содержащий данные для формы.

Форма будет выглядеть примерно так:

<form action="submit.php" method="POST"> ... </form>

Это говорит о том, что URL для запроса - www.example.com/submit.php, и ваш запрос должен быть POST.

В форме будет несколько элементов ввода, например:

<input type="text" name="itemnumber"> ... </input>

вам нужно создать строку из всех этих пар входное имя = значение, закодированных для URL, добавленного в конец запрошенного URL, который теперь становится www.example.com/submit.php?itemnumber=5234&otherinput=othervalue и т. д. Это будет хорошо работать для GET. POST немного сложнее.

</motivation>

Просто перейдите по ссылкам С.Лотта, чтобы упростить использование библиотеки: P

2 голосов
/ 26 декабря 2008

Используя python, я думаю, что он предпринимает следующие шаги:

  1. анализ веб-страницы, содержащей форму, выяснение адреса отправки формы и метода отправки ("post" или "get").

это объясняет элементы формы в html-файле

  1. Используйте urllib2 для отправки формы. Вам могут понадобиться некоторые функции, такие как «urlencode», «quote» из urllib для генерации URL и данных для метода post. Прочитайте документацию библиотеки для деталей.
0 голосов
/ 26 декабря 2008

Вы можете сделать это с помощью JavaScript. Если форма что-то вроде:

<form name='myform' ...

Тогда вы можете сделать это в JavaScript:

<script language="JavaScript">
function submitform()
{
document.myform.submit();
}
</script> 

Вы можете использовать атрибут "onClick" ссылок или кнопок для вызова этого кода. Чтобы вызвать его автоматически при загрузке страницы, используйте атрибут «onLoad» элемента:

<body onLoad="submitform()" ...>
...