Получение данных с сайта, требующего данных POST?

Есть очень простой веб-сайт, содержащий всего несколько элементов, из которых я хотел бы получить таблицу. Раньше я использовал file_get_contents('http://www.example.com') именно для этой цели и извлекал нужную мне информацию с помощью команд взорваться и str_replace, которые отлично работали.

Однако этому веб-сайту требуются данные POST, прежде чем он отобразит нужную мне таблицу. Я знаю только имя и идентификатор полей выбора, через которые отправляются данные, а также «значение параметра», которое мне нужно отправить.

Другое дело, что второе поле выбора появляется только после обработки первого, подобно тому, как таблица появляется только после того, как для обоих выбран вариант.

Как мне получить стол?

Заранее спасибо!

Абстрактное (и плохое) представление сайта, обслуживающего стол:

    <select id='select_box_1' name='first select box'>
      <option value='option1_1'>Thing one</option>
      <option value='option1_2'>Second thing</option>
      <option value='option1_3'>Thing number three</option>
    </select>

    NOTE: Selecting an option will spawn:

    <select id='select_box_2' name='second select box'>
      <option value='option2_1'>First thing</option>
      <option value='option2_2'>Second choice</option>
      <option value='option2_3'>The third option</option>
    </select>

    NOTE: Selecting an option will spawn the table I need.

person Chris    schedule 23.11.2011    source источник


Ответы (2)


Попробуйте с curl:

Вот несколько примеров

person Tudor Constantin    schedule 23.11.2011
comment
Спасибо (примечание для себя:) эта веб-страница дополнительно объясняет использование curl для запросов POST: html-form-guide.com/php-form/php-form-submit.html - person Chris; 23.11.2011

Я предполагаю, что сайт, который вы пытаетесь очистить, сохраняет значение первого выбора в сеансе после POST для заполнения/отображения второго выбора. Это означает, что это невозможно сделать с помощью одного запроса.

Вам нужно будет использовать клиент PHP Http, который поддерживает POST и Sessions/Cookies. Zend_Http_Client от ZendFramework поддерживает оба варианта, поэтому является хорошим кандидатом.

person ChrisR    schedule 23.11.2011
comment
Спасибо за ваш ответ. Есть ли способ узнать, использует ли страница сеанс, кроме как просто посмотреть, работает ли curl? - person Chris; 23.11.2011