我想说,我在爬网方面相当有经验-通常我使用过PHP和curl库,并且克服了很多问题。
我的正常流程:
通常这会起作用,如果不起作用,则在调整Cookie,用户代理或其他标头后5分钟内,我可以使请求起作用。
我有两个站点,我只是无法通过PHP / Curl使它工作,但它却可以通过邮递员工作。我还尝试过在nodejs中使用 request 库,这些无法通过PHP / curl正常运行的网站可以正常使用默认请求,例如:
const rp = require('request-promise');
const url = 'https://www.very.co.uk/';
rp(url)
.then(function(html){
//success!
console.log(html);
})
如您所见,我没有设置任何特殊的标头,用户代理或cookie,但是这可以工作-那么为什么在PHP / Curl中不起作用?
使用PHP / Curl中的一些详细输出,我设法获得以下输出:
发生了错误:(56)SSL读取:错误:00000000:lib(0):func(0):原因(0),错误编号104
但是那为什么我即使设置以下标头也不会得到这个nodejs:
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
使用PHP / CURL不能解决问题-您可以帮忙吗?
谢谢 安德鲁