pan*_*nic 14 php user-agent curl
我们一直在使用来自网站的信息一段时间(如果您提及源代码我们这样做,该网站允许的内容)我们一直在手动复制信息.你可以想象这可能会很快变得乏味,所以我一直试图通过PHP脚本获取信息来自动化这个过程.
我正在尝试获取的URL是:
http://mediaforest.ro/weeklycharts/viewchart.aspx?r=WeeklyChartRadioLocal&y=2010&w=46 08-11-10 14-11-10
Run Code Online (Sandbox Code Playgroud)
如果我在浏览器中输入它,它会起作用,如果我尝试使用file_get_contents(),我会收到错误的请求
我想他们检查了客户端是否是浏览器,所以我推出了基于CURL的解决方案:
$ch = curl_init();
$header=array(
'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: en-us,en;q=0.5',
'Accept-Encoding: gzip,deflate',
'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
'Keep-Alive: 115',
'Connection: keep-alive',
);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_COOKIEFILE,'cookies.txt');
curl_setopt($ch,CURLOPT_COOKIEJAR,'cookies.txt');
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
$result=curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
我已经检查过,标题与我的浏览器标题完全相同,我仍然收到错误请求
所以我试了另一个解决方案
http://www.php.net/manual/en/function.curl-setopt.php#78046
Run Code Online (Sandbox Code Playgroud)
不幸的是,这也不起作用,我没有想法.我错过了什么?
Ree*_*ore 12
尝试转义您的网址,这样就适合我.
http://mediaforest.ro/weeklycharts/viewchart.aspx?r=WeeklyChartRadioLocal&y=2010&w=46%2008-11-10%2014-11-10
Run Code Online (Sandbox Code Playgroud)
Thi*_*ter 11
使用 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
当然,你可以用另一个替换useragent.
但是,"错误请求"很可能与丢失/不良的使用者无关.听起来网络服务器本身并不喜欢你的请求..不是所请求的URI背后的应用程序.