卷曲功能可从选择框中选择选项并自动提交

时间:2009-04-21 02:29:30

标签: php curl screen-scraping

我是新手,每天尝试不同的事情,当我遇到困难的时候总是来这里。

我想使用curl和php编写一个脚本来访问此链接:http://tools.cisco.com/WWChannels/LOCATR/openBasicSearch.do然后浏览每个国家/地区的每个页面,捕获每个国家/地区中每个合作伙伴的列表并将其保存到数据库。

我不知道脚本将如何从选择框中逐个选择国家并将页面重定向到国家页面...这是第一件要做的事情,一旦我们进入页面模式匹配就会出现存储名称和我可以管理的数据库中的地址。

问题出在我们选择任何国家/地区网址之前:: http://tools.cisco.com/WWChannels/LOCATR/BasicSearch.do 在我们选择国家/地区后说“印度”网址为:http://tools.cisco.com/WWChannels/LOCATR/performBasicSearch.do时,没有任何国家/地区的引用。

我的想法是遍历HTML页面,然后输入数组中的所有国家/地区,然后创建一个递归函数来调用具有特定国家/地区的页面,但为此我们需要在递归函数中为每个国家/地区设置不同的URL正确?

请帮忙

2 个答案:

答案 0 :(得分:2)

您的网址搞砸了,所以我看不到您正在谈论的确切网页,但最有可能发生的事情是,当您更改国家/地区时,网站正在制作{{ 1}}请求到同一页面  使用POST之类的变量(尽管可能是其他变量),其中包含您选择的国家/地区ID /国家/地区ID的值。如果您在页面上查看源,您将能够看到正在传递的输入字段的名称。完成此操作后,在发出cURL请求时,您可以设置country的{​​{3}},其内容如下:

  

要在HTTP“POST”操作中发布的完整数据。要发布文件,请在文件前加上@并使用完整路径。这可以作为urlencoded字符串传递,如'para1 = val1& para2 = val2& ...',或者作为一个数组,字段名称作为键,字段数据作为值。

所以,记住你会做这样的事情:

CURLOPT_POSTFIELDS

正如我所说,国家=>印度的一部分是有关该领域可能通过的有根据的猜测。您必须检查HTML以便自己查找。

答案 1 :(得分:1)

对于自动化/抓取,我建议您使用虚拟浏览器,例如SimpleBrowser。它是SimpleTest的一部分,但您可以单独使用它。