作者davidou (老欧 ! 月夜雪岚)
看板PHP
标题[请益] curl 抓网页资料
时间Sun Jun 5 00:57:14 2011
我目前有个A网页要抓 可是那个网页必须要登入才可以抓
所以我变成要去B网页 login 後 在到a网页去抓
现在问题来了 我用curl登入B网页後 在去捞A网页 她又显示没登入了
怎会这样勒
程式码 (上面的curl 可以大略看看就好 因为我有登入成功了 主要是最後面)
网页版 程式码 (
http://dl.dropbox.com/u/3503352/new%20%205.txt)
应该会比较好读
<?php
$loginData = array(
'username' => '帐号',
'password' => '密码' );
$structData= array(
'url' => '
http://www.plurk.com/m/login',
'postFields' =>
'username='.urlencode($loginData['username']).'&password='.urlencode($loginData['password']),
'header' => 0,
'followLocation' => 1,
'cookiejar' => 'C:\coo.txt'
);
//
$ch = curl_init();
$options = array(
CURLOPT_URL => $structData['url'],
CURLOPT_POSTFIELDS => $structData['postFields'],
CURLOPT_POST => 1,
CURLOPT_HEADER => $structData['header'],
CURLOPT_FOLLOWLOCATION => $structData['followLocation'],
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_COOKIEJAR => $structData['cookiejar'],
CURLOPT_RETURNTRANSFER => $rr,
CURLOPT_USERAGENT => "Mozilla/5.0 (Windows; U; Windows NT 5.1;
en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3" );
curl_setopt_array($ch, $options);
$d = curl_exec($ch);
if(curl_errno($ch) == 0) file_put_contents("data.txt", $d);
// 产生 Cookie ,以便记住登入後的 Session
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'C:\cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'C:\cookie.txt');
curl_setopt($ch, CURLOPT_COOKIE, 'C:\cookie.txt');
//----- 读取网页源始码
$fp = file_get_contents("
http://www.plurk.com/m/u/davidou123");
echo $fp;
?>
--
只有正妹的无名才有连结价值阿..
http://www.wretch.cc/blog/fancyou
非正妹 所以没有连结价值
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.170.110.172
※ 编辑: davidou 来自: 218.170.110.172 (06/05 00:58)
1F:→ mp607:有现成的噗浪API可以用 06/05 00:58
3F:→ davidou:楼上 我知道 我有写好过了 只是想写另一种的 06/05 01:00
4F:推 mlwmlw:可以检查看看 cookie 里面有没有资料 06/05 08:03
5F:→ mlwmlw:CURLOPT_COOKIEJAR 的路径 为什麽要不一样 06/05 08:04
6F:→ davidou:COOKIE 有资料 06/05 09:48
7F:推 mlwmlw:没注意看… 你要两次都用 curl ,才会用到登入的 cookie 喔 06/05 11:49
8F:→ mlwmlw:而且你这程式很怪 感觉拼凑出来的…流程不太对 06/05 11:50
9F:→ hSATAC:file_get_contents 不吃你 curl的 cookie吧? 06/05 12:02
10F:→ hSATAC:你第一个 file_get_contents 的用法也怪怪的 06/05 12:05
11F:→ hSATAC:建议你全部用 curl 重写 06/05 12:06
12F:→ davidou:恩 没错 当时这只是拼凑出来的 所以没吃到CURL的资料 06/05 22:34
13F:→ davidou:後来用两个CURL 就解决了 06/05 22:34