首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将PHP脚本伪装成浏览器?

如何将PHP脚本伪装成浏览器?
EN

Stack Overflow用户
提问于 2010-11-15 13:36:10
回答 3查看 26K关注 0票数 14

我们已经使用了一个网站的信息有一段时间了(如果您提到源,我们就会允许),并且我们已经手工复制了这些信息。正如您可以想象的那样,这可能很快就会变得乏味,所以我一直试图通过使用PHP脚本获取信息来自动化这个过程。

我要获取的URL是:

代码语言:javascript
复制
http://mediaforest.ro/weeklycharts/viewchart.aspx?r=WeeklyChartRadioLocal&y=2010&w=46 08-11-10 14-11-10

如果我在浏览器中输入它,它就能工作,如果我尝试file_get_contents(),就会得到坏请求

我想他们检查了客户端是否是浏览器,所以我推出了一个基于卷曲的解决方案:

代码语言:javascript
复制
$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);

我已经检查过了,标题与浏览器的头完全相同,我仍然得到了坏请求

所以我尝试了另一个解决方案:

代码语言:javascript
复制
http://www.php.net/manual/en/function.curl-setopt.php#78046

不幸的是,这也不起作用,我也没有主意了。我遗漏了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-15 13:46:08

试着转义你的URL,它对我来说是这样的。

代码语言:javascript
复制
http://mediaforest.ro/weeklycharts/viewchart.aspx?r=WeeklyChartRadioLocal&y=2010&w=46%2008-11-10%2014-11-10
票数 12
EN

Stack Overflow用户

发布于 2010-11-15 13:40:39

使用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后面的应用程序。

票数 11
EN

Stack Overflow用户

发布于 2020-10-08 18:47:04

我不得不输掉$header上的“接受-编码: gzip,泄气”,才能让它在我的godaddy网站上正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4184869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档