【发布时间】:2016-04-25 15:38:50
【问题描述】:
我有一个类似下面的表格。
我想使用 php 下载 pdf 文件,我对 CURL 有一些经验,但我无法让它工作。 CURL 请求应该是什么样子?一旦发出请求,我该如何下载文件?
<form action="https://ems.ms.gov.pl/krs/danepodmiotu.form" method="post" >
<input value="H4sIAAAAAAAAAJVSv2sUQRj9shAIOfyBYBGiUeHOKsyJmEYb44XIwSHBQ6xEZnc/13Fn5xtnZm/2Umjj3yBIIH+BpIptmhTpbPwL/ANsLAIBC2c3iphDL5nue3xv3nsz7+M3mPWLsJAb213jCjcoLQS58m7yEpM8psoaWCGTMa55gJjjGq0z4xWWkEEpYhZzi2w1DiBP3LpAmbaH6ErdebLf+nr54EcEMwNoJaScIfmIF+jg0uAVH/Gu5CrrDp0RKrtXaQdzvzWnGVo9q6ENQwlaOyzjQlgrSO3vpHdeHG5/jgAq7a/C4j/lnt+yr+ENgIP5P9AURk2Y9Tfg2uTOpiSVkxeYGZGGKMtasoxGrLAMNWce46TQIUqhSaFylj0Me73SOirat0fvtzp5e7lz7PomtKfczwx5G0R6/32vE2KPA+f4B9fJhOHBuK9SrL48q95e2Lt4FL6zD3Ph4gatNIRzaiv1w8wHwsyZGZG/DksTDE2xQLPpx6kp8xD0/mmDNk1wk734MPy+8Gn3XS+CaBD6KEXY7qe1ibrEKLEIQF3iBqpLe+6Xh6eNh5OzX4IrE659UE1JCuvGTb7zDlo1tkaDGvt7+gmOLLt/oQMAAA==" name="t:formdata" type="hidden">
<input type="hidden" name="t:submit" value="pobierzWydruk">
<input value="DOWNLOAD" name="DOWNLOAD" type="submit">
</form>
这是我尝试过的,但 CURL 返回 false。
$url = 'https://ems.ms.gov.pl/krs/danepodmiotu.form';
$fields_string = '';
$fields = array(
't:submit' => 'pobierzWydruk',
't:formdata' => 'H4sIAAAAAAAAAJVSv2sUQRj9shAIOfyBYBGiUeHOKsyJmEYb44XIwSHBQ6xEZnc/13Fn5xtnZm/2Umjj3yBIIH+BpIptmhTpbPwL/ANsLAIBC2c3iphDL5nue3xv3nsz7+M3mPWLsJAb213jCjcoLQS58m7yEpM8psoaWCGTMa55gJjjGq0z4xWWkEEpYhZzi2w1DiBP3LpAmbaH6ErdebLf+nr54EcEMwNoJaScIfmIF+jg0uAVH/Gu5CrrDp0RKrtXaQdzvzWnGVo9q6ENQwlaOyzjQlgrSO3vpHdeHG5/jgAq7a/C4j/lnt+yr+ENgIP5P9AURk2Y9Tfg2uTOpiSVkxeYGZGGKMtasoxGrLAMNWce46TQIUqhSaFylj0Me73SOirat0fvtzp5e7lz7PomtKfczwx5G0R6/32vE2KPA+f4B9fJhOHBuK9SrL48q95e2Lt4FL6zD3Ph4gatNIRzaiv1w8wHwsyZGZG/DksTDE2xQLPpx6kp8xD0/mmDNk1wk734MPy+8Gn3XS+CaBD6KEXY7qe1ibrEKLEIQF3iBqpLe+6Xh6eNh5OzX4IrE659UE1JCuvGTb7zDlo1tkaDGvt7+gmOLLt/oQMAAA==');
foreach ($fields as $key => $value) {
$fields_string .= $key . '=' . $value . '&';
}
$fields_string = rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch);
curl_close($ch);
【问题讨论】:
-
当我提交您提供的表单代码时,我并没有开始下载,而是获得了一个网页。这是预期的行为吗?是否应该开始下载 PDF 文件?
-
不,不应该。我正在寻找一种下载方式
标签: php pdf curl web-scraping screen-scraping