0

我已经阅读了几个小时的卷屏抓取信息,但我似乎无法弄清楚我在做什么对或错。我不确定如何判断我的登录尝试是否有效。

目标是“简单”,发布到登录页面,然后从登录页面中提取数据。

从 Tamper Data 中我可以看出,该网站似乎主要使用 post params 进行网页导航,所以我提出了两个 curl 请求。一种用于登录,另一种用于从页面获取 HTML。到目前为止,我得到的转储是这样的:

string(7097) "HTTP/1.1 200 OK Set-Cookie: sp21webs=a11a060bf1DELETED000064000000; expires=Mon, 21-Oct-2013 01:47:02 GMT; path=/ Server: "" Date: Mon, 21 Oct 2013 01:格林威治标准时间 37:01 内容类型:文本/html 最后修改时间:2013 年 10 月 13 日星期日 21:54:39 格林威治标准时间 内容长度:6781 Etag:“1a7d-DELETED69f”接受范围:字节

看起来像登录页面 HTML

我对 Curl 的工作原理不是很熟悉,这是我的代码:

$submit_url = "https://okbnetplaza.com/WBIG0001.html"; 

$curl = curl_init(); 
$cookie = 'cookies.txt';
$params = array (
   "__uid" => "<hidden>",
   "PIN" => "<hidden>",
   "__type" => "0001",
   "__gid" => "WBIG0001",
   "__func" => "%A3%CF%A3%CB",
   "__func2" => "%A5%ED%A5%B0%A5%A4%A5%F3",
   "RegType" => "0",
 );

curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC ) ; 
curl_setopt($curl, CURLOPT_SSLVERSION,3); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($curl, CURLOPT_HEADER, true); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $params ); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
curl_setopt($curl, CURLOPT_URL, $submit_url); 
$result = curl_exec($curl); 

var_dump($result); 
curl_close($curl); 

echo "<h1> Login Work????</h1>";

$urltopost = "https://okbnetplaza.com/WBIG0001.html";
$datatopost = array (
   "__type" => "0033",
   "__gid" => "WBIG0005",
   "__func" => "%A3%CF%A3%CB",
   "AccountListType" => "1",
   "DispAccountInfo" => "00000000000000000000",
);

$ch = curl_init ($urltopost);
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $datatopost);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);

$returndata = curl_exec ($ch);
var_dump($returndata);
  • 我不是 100% 确定 URL 是正确的,因为该站点使用了令人困惑的 JS

问题:我当前的代码似乎无法通过登录页面。您是否发现我的 curl 请求有任何会停止登录的问题?你看到有人想让登录和抓取工作吗?

提前致谢

4

1 回答 1

0

仅供参考,

我最终使用了casperjs,然后使用 PHP 脚本通过 exec 调用脚本。

不完美,但这是我能找到的模仿浏览行为的最佳方式。

于 2013-11-08T07:13:00.873 回答