【发布时间】:2017-03-04 20:19:25
【问题描述】:
我正在使用Goutte(它使用Guzzle)来提取内容,我的脚本以错误结束,尽管我在 try/catch 中运行:
Error: Client error: `GET http://example.com/C42C9CA3` resulted in a `403 Forbidden` response:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"htt (truncated...)
这就是我所拥有的:
use Goutte\Client;
$HTTPconfig = [ "curl" => [
CURLOPT_TIMEOUT => 60,
CURLOPT_CONNECTTIMEOUT => 60,
CURLOPT_SSL_VERIFYPEER => false,
],
['http_errors' => false]
];
$HTTPclient = new \Goutte\Client;
$HTTPclient->setClient(new \GuzzleHttp\Client($HTTPconfig));
$HTTPclient->setHeader('user-agent', 'Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20121202 Firefox/20.0');
try {
$crawler = $HTTPclient->request('GET', $url);
$doc = $crawler->html();
} catch (Exception $e) {
write($e->getMessage());
continue;
}
【问题讨论】:
-
所以输出不是来自
write($e->getMessage());? -
@JonStirling 不,我稍后添加了 try/catch,但它仍然以该错误结束。
-
绝对是这段代码造成的?我看不出这会失败并停止执行的原因。
-
是的,这很奇怪,但就是这样。
http://shop.lenovo.com/us/en/itemdetails/06P4069/460/0E80436C80A748E6AA76791FC42C9CA3是网址。 -
无法使用提供的代码和 URL 进行复制。