我需要抓取一个网络板,它使用 ajax 来动态更新/隐藏/显示评论,而无需重新加载相应的帖子。我被这个评论区屏蔽了。
在 Ajax.request 中,使用没有主机名的路径指定 url,如下所示:
new Ajax(**'/bbs/comment_db/load.php'**, {
update : $('comment_result'),
evalScripts : true,
method : 'post',
data : 'id=work_gallery&no=i7dg&sno='+npage+'&spl='+splno+'&mno='+cmx+'&ksearch='+$('ksearch').value,
onComplete : function() {
$('cmt_spinner').setStyle('display','none');
try {
$('cpn'+npage).setStyle('fontWeight','bold');
$('cpf'+npage).setStyle('fontWeight','bold');
} catch(err) {}
}
}).request();
如果我尝试使用完整的主机名访问 url,那么我只会收到消息:“Permission Error”:
new Ajax(**'http://host.name.com/bbs/comment_db/load.php'**, {
update : $('comment_result'),
evalScripts : true,
method : 'post',
data : 'id=work_gallery&no=i7dg&sno='+npage+'&spl='+splno+'&mno='+cmx+'&ksearch='+$('ksearch').value,
onComplete : function() {
$('cmt_spinner').setStyle('display','none');
try {
$('cpn'+npage).setStyle('fontWeight','bold');
$('cpf'+npage).setStyle('fontWeight','bold');
} catch(err) {}
}
}).request();
将导致相同的错误。
即使我像这样在网络浏览器中调用实际的 php url,这也是一样的:http: //host.name.com/bbs/comment_db/load.php ?'id=work_gallery&..'
我猜想 php 模块被限制为由同一主机中的 url 调用。
抓取这些数据的任何想法?
提前致谢。
——辛