无法使用 CURL 管理会话

问题描述 投票:0回答:2

希望一切顺利。

我需要一点帮助。

我正在尝试使用 CURL 抓取页面(http://wap.ebay.com/Pages/ViewItem.aspx?aid=160585148382),当此页面加载时,该页面中有另一个链接(锚文本:描述),我也想抓取该页面。

当您直接进入描述页面(http://wap.ebay.com/Pages/ViewItemDesc.aspx?aid=280655395879&emvcc=0)并放入浏览器时,它会显示类似“会话已过期或没有拍卖”的错误找到详细信息”,我认为要抓取该页面,我们需要进行一些会话或其他操作。

所以,首先我想抓取 http://wap.ebay.com/Pages/ViewItem.aspx?aid=280655395879 然后提取描述按钮中的 URL,然后提取前缀 (http://wap.ebay.aspx) com/Pages)到它,这样它就变成了一个完整的URL,然后我想抓取该URL的内容。

但看起来我无法保持会话存活。

我的代码是:

<?
require_once('simple_html_dom.php');

$url = 'http://wap.ebay.com/Pages/ViewItem.aspx?aid=160585148382';
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);

//echo $curl_scraped_page;

$html = str_get_html($curl_scraped_page);

 // Find the img tag in the Teaser_Item div
 $a = $html->find('div[id=Teaser_Item] img', 0);

 // Display the src
 $e_image = 'http://wap.ebay.com/Pages/'.str_replace("width=57", "width=200", ($a->attr['src']));
 echo '<img src="'.$e_image.'" /> <br /><br />';
 
 
$wow = $html->find('a#ButtonMenuItem3', 0);
 
 $descurl = 'http://wap.ebay.com'.$wow->attr['href'];
 echo $descurl;
 

 exit;
 
 $html->clear();
 unset($html);


$html = file_get_html($descurl);
 
 echo $html;

 
 

$html->clear();
unset($html);
  
 
?>

干杯 娜塔莎

php curl
2个回答
1
投票

您没有将 $cookie 设置为值,因此

CURLOPT_COOKIEFILE
/
CURLOPT_COOKIEJAR
均为 NULL,因此不保存。


0
投票
  $strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/';
  session_write_close();
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt( $ch, CURLOPT_COOKIE, $strCookie );
© www.soinside.com 2019 - 2024. All rights reserved.