我有一个PHP应用程序,它使用curl访问外部URL并分析页面内容。我的代码在localhost上工作得很好但是当我把它放在服务器上运行时显示错误:
拒绝访问
您无权访问“http://www.example.com” 服务器。参考#18.aec67bc8.1417892829.438558f
我的代码
$cookie_file = '';
$post_fields = 'id=1';
$agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_USERAGENT,$agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
$output = curl_exec($ch);
有什么想法吗?
答案 0 :(得分:1)
EC2的IP范围经常被阻止抓取某些网站,包括StackOverflow。
答案 1 :(得分:0)
该代码适合我。您可能需要在AWS实例上打开端口80。您可以通过编辑与Elastic Beanstalk创建的实例关联的安全组来完成此操作。