从需要POST数据的站点获取数据?

时间:2011-11-23 15:31:04

标签: php post external fetch

有一个非常简单的网站,其中只包含一些我想要检索表格的元素。以前我已经将file_get_contents('http://www.example.com')用于这个目的,并通过explode和str_replace命令提取了我需要的信息,这些命令运行正常。

但是,此网站需要POST数据才能显示我需要的表格。我只知道提交数据的选择框的名称和ID,以及我需要提交的“选项值”。

另一件事是第二个选择框仅在第一个选择框被处理后出现,就像只有在为两者选择了一个选项后才出现的表。

如何获取桌子?

提前致谢!

提供表格的网站的抽象(和差)表示:

    <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.

2 个答案:

答案 0 :(得分:3)

尝试curl

Here是一些例子

答案 1 :(得分:1)

我的猜测是,您尝试抓取的网站是在POST后填充/显示第二个选择的会话中存储第一个选择的值。这意味着无法通过单个请求完成。

您必须使用支持POST和会话/ Cookie的PHP Http客户端。来自ZendFramework的Zend_Http_Client支持两者,因此是一个很好的候选者。