网页抓取时如何处理HTTP 410?

时间:2020-02-16 14:18:46

标签: php http web-scraping

我可以通过浏览器访问网站,例如:

https://waset.org/conferences-in-february-2020-in-london

...但是如果我尝试通过Web抓取该网站(我使用的是php simplehtmldom),则会收到HTTP错误410(这意味着该页面已消失,但是可以通过浏览器看到它) )。

其他网站(来自同一家族,例如https://waset.org/conferences-in-february-2021-in-london),我可以抓取。

有人知道为什么我得到410的原因,网页在那里,我能做什么。

2 个答案:

答案 0 :(得分:1)

您甚至可以对其进行爬网。 Chrome浏览器还会收到410错误代码:

enter image description here

继续使用200代码。

-编辑-

看看下面的代码,它对您的页面效果很好:

$context = stream_context_create(array(
    'http' => array('ignore_errors' => true),
));

$result = file_get_contents('https://waset.org/conferences-in-february-2020-in-london', false, $context);

var_dump($result); 
// output <!DOCTYPE html> <html lang="en" dir="ltr" id="desktop"> <head> <!--Google Tag Manager -->...

我们只选择忽略错误,就像我们的浏览器自动执行一样。

答案 1 :(得分:0)

在浏览器中加载页面时,服务器也会以410进行响应-请参阅随附的imag。他们可能想传达会议已过期的消息。

enter image description here

其余数据已按预期加载...