【发布时间】:2012-10-06 09:42:33
【问题描述】:
我正在使用此代码,但它不起作用。请帮忙
$url = "http://www.riogrande.com/Category/Findings-and-Finished-Jewelry/132/Bails-and-Enhancers/472";
$file=file_get_contents($url);
preg_match("#.*?#mis", $file, $arr_viewstate);
$viewstate = urlencode($arr_viewstate[1]);
$eventvalidation = urlencode($arr_viewstate[2]);
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7'", // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 1120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_POST => true,
CURLOPT_VERBOSE => true,
CURLOPT_POSTFIELDS => '__EVENTTARGET='.urlencode('ctl00$ContentPlaceHolderBody$SearchPageNavigationTop$rptPager$ctl01').'&__EVENTARGUMENT='.urlencode('').'&__VIEWSTATE='.$viewstate.'&__EVENTVALIDATION='.$eventvalidation.'&__LASTFOCUS='.urlencode('')
);
$ch = curl_init($url);
curl_setopt_array($ch,$options);
【问题讨论】:
-
“它不工作”是什么意思?它会抛出错误吗?它应该做什么?你没有给我们足够的继续。
-
从看教程和学习编程开始,不在这里丢一堆代码加引号。在发布问题之前,请查看您必须经过的询问建议。
-
另外请正确格式化和缩进你的代码,其他人需要阅读。
-
您的代码没有说明您无法实现的目标..
-
抱歉信息不完整。在给定的网址上,有分页。我可以删除第一页,但不能下一个。我将此代码用于第二页,因为当我们单击第 2 页时,“ctl00$ContentPlaceHolderBody$SearchPageNavigationTop$rptPager$ctl01”值被传递给 __doPostBack 函数。所以它没有给出第 2 页的内容。我将此值用于 preg_match("#
.*? #mis", $file, $arr_viewstate);
标签: php asp.net curl screen-scraping