在网站上以编程方式填写HTML表单的最有效方法是什么,使用来自数据集(CSV,JSON或类似的......)的数据,然后将提交的表单的结果检索到另一个数据集中?我希望能够多次执行此操作,每次使用不同的参数填充表单,始终从输入数据集中检索这些参数。
我正在阅读有关Selenium和HTMLUnit的内容,它们似乎做了类似的事情。但是他们需要安装依赖项并学习如何使用它们。它会有点矫枉过正吗?通过编写自己的脚本,有更简单的方法吗?
我尝试编写一个php curl脚本,但是这个脚本没有生成请求所需的头文件或cookie,因此我无法检索任何内容。
<?php
/**
* Send a POST requst using cURL
* @param string $url to request
* @param array $post values to send
* @param array $options for cURL
* @return string
*/
function curl_post($url, array $post = NULL, array $options = array())
{
$defaults = array(
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_URL => $url,
CURLOPT_FRESH_CONNECT => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FORBID_REUSE => 1,
CURLOPT_TIMEOUT => 4,
CURLOPT_POSTFIELDS => http_build_query($post)
);
$ch = curl_init();
curl_setopt_array($ch, ($options + $defaults));
if( ! $result = curl_exec($ch))
{
trigger_error(curl_error($ch));
}
curl_close($ch);
return $result;
}
?>
我不确定这是不是正确的做法。
任何提示/资源将不胜感激。
你可以在Selenium中编写这个脚本 - 它只是一个浏览器驱动程序,它将从客户端填写表单。如果页面不是很复杂,您可以在Python中使用库请求并直接将POST数据发送到最终页面。请求是一个更快的库,并且要编写发送POST数据的脚本,您将需要5分钟的学习时间。