繁体   English   中英

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

[英]How do I deal with an HTTP 410 when web scraping?

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

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

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

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

有谁知道为什么我会收到 410,网页何时出现,以及我能做些什么。

你甚至可以抓取它。 Chrome 也会收到410错误代码:

在此处输入图片说明

继续你的东西,如果它是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 -->...

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

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

在此处输入图片说明

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM