我正在尝试抓取这个网站,但是当我回复img脚本时。返回 403 Forbidden-nginx / 1.4.3
任何人都可以提供帮助吗?
这是我的代码:
$url = '1cak.com/trending-0-&ajax_seek=1396912798&seek_max_time=1396921201';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17)');
curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
$curl_scraped_page = curl_exec($ch);
$html = new simple_html_dom();
$html->load($curl_scraped_page);
foreach($html->find('div[style="border-bottom:1px solid #ccc;padding-bottom:10px;padding-top:10px"]') as $item){
echo $item->find('img',0)->src ."<br/>";
echo "<img src=".$item->find('img',0)->src."><br/>";
}
答案 0 :(得分:1)
错误403可能意味着很少:
您的IP已被阻止,因为您已经尝试了太多次来删除数据,并且您无法对其进行任何操作(除了使用某种代理,但这是另一个问题)。您可以通过在Web浏览器中从服务器尝试相同的页面来测试这一点(如果您只能访问ssh,则使用chrome / chromium或lynx)。
Page可以通过用户代理或推荐人或类似方式控制访问者。由于您已经尝试模拟浏览器,我不认为这是问题所在。
答案 1 :(得分:0)
在回显大量数据时,我多次遇到“禁止”错误。在开发复杂的PHP脚本时,我倾向于提出许多“诊断”回声。
我发现的唯一修复是删除尽可能多的诊断回应语句。我还没有确定回声限制是什么,但我怀疑每个网络主机都会有所不同。