【发布时间】:2015-08-07 16:05:57
【问题描述】:
我们正在使用 curl 从第三方网络服务器获取响应。有一个代码sn-p:
$url = "https://book.some-site.com/cgi-bin/booking-form.cgi";
$uagent = "Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.14";
$ch = curl_init( $url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
一切正常,直到我们在其中一个页面上点击加载屏幕。我们从网络服务器得到以下响应“...
我们正在处理您的请求...
很快就会显示您的搜索结果。
”这是一个加载/等待屏幕。之后我们什么也得不到。
在加载屏幕后在浏览器中工作时,会显示实际响应。
任何想法如何绕过加载屏幕获得实际响应?
提前致谢。
【问题讨论】:
-
仅供参考,在抓取其他网站时使用虚假用户代理标识自己通常被认为是不礼貌的(您似乎将自己标识为 Opera)。 Here's a short guide to scraping etiquette.
-
应用程序使用什么类型的重定向?如果它加载了javascript(例如),我认为javascript不会执行。