使用Curl和PHP进行屏幕浏览登录

使用Curl和PHP进行屏幕浏览登录,php,curl,login,screen-scraping,scrape,Php,Curl,Login,Screen Scraping,Scrape,我已经读了好几个小时的卷曲屏幕抓取信息,我似乎不知道我在做什么是对的还是错的。我不知道如何判断我的登录尝试是否有效 目标是“简单”,发布到登录页面,然后从登录页面上提取数据 从篡改数据可以看出,该网站似乎主要使用post参数进行网页导航,因此我提出了两个curl请求。一个用于登录,另一个用于从页面获取HTML。到目前为止,我得到的垃圾是: 字符串(7097)“HTTP/1.1200正常 设置Cookie:sp21webs=A11A060BF1Deleted0000640000000;expire

我已经读了好几个小时的卷曲屏幕抓取信息,我似乎不知道我在做什么是对的还是错的。我不知道如何判断我的登录尝试是否有效

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

从篡改数据可以看出,该网站似乎主要使用post参数进行网页导航,因此我提出了两个curl请求。一个用于登录,另一个用于从页面获取HTML。到目前为止,我得到的垃圾是:

字符串(7097)“HTTP/1.1200正常 设置Cookie:sp21webs=A11A060BF1Deleted0000640000000;expires=Mon,2013年10月21日01:47:02 GMT;路径=/ 服务器:“ 日期:2013年10月21日星期一01:37:01 GMT 内容类型:text/html 最后修改:2013年10月13日星期日21:54:39 GMT 内容长度: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);
$submit\u url=”https://okbnetplaza.com/WBIG0001.html"; 
$curl=curl_init();
$cookie='cookies.txt';
$params=数组(
“\uuu uid”=>”,
“PIN”=>“”,
“_类型”=>“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_头,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(兼容;MSIE 5.01;Windows NT 5.0)”);
curl_setopt($curl,CURLOPT_URL,$submit_URL);
$result=curl\u exec($curl);
var_dump($结果);
curl_close($curl);
回显“登录工作??”;
$urltopost=”https://okbnetplaza.com/WBIG0001.html";
$datatopost=array(
“_类型”=>“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_头,0);
curl_setopt($ch,CURLOPT_POSTFIELDS,$datatopost);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$returndata=curl\u exec($ch);
var_dump($returndata);
  • 我不是100%确定URL是正确的,因为该网站使用令人困惑的JS
问题是: 我当前的代码似乎无法通过登录页面。您是否看到我的curl请求有任何问题会停止登录?您是否看到任何要使登录和刮取正常工作的问题

提前感谢

仅供参考

最后我使用了,然后用一个PHP脚本通过exec调用脚本


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

@Dagon-如果他们想让我登录,他们会创建一个API:)根据我所阅读的内容,这应该是可能的,我只需要正确的设置。问题是什么?也许可以尝试像snoopy或pgbrowser这样的库。哈哈,我不会问任何问题。这些都是新的库我的珍品我现在就要试试史努比。谢谢!我昨晚给了史努比和pgbrowser一次尝试。还没有成功,我仍然想在放弃之前尝试一些东西。任何推荐都非常感谢。