我使用Laravel 5.2進行網頁抓取meta標籤,但我遇到get_meta_tags()
問題。PHP Laravel網頁抓取get_meta_tags
似乎環狀的get_meta_tags()
有超時和/或cURL問題。
以此爲例。
$urls = ['http://google.com', 'http://yahoo.com', ...];
foreach ($urls as $value) {
$meta = get_meta_tags($value);
}
比方說,我有$urls
陣列在10個值然後做一個循環get_meta_tags()
。在性能方面會有什麼問題嗎?這是因爲我得到隨機的網址間歇性錯誤,顯示:
get_meta_tags():php_network_getaddresses:的getaddrinfo失敗:這是 通常是主機名解析過程中暫時的錯誤,意味着 本地服務器沒有收到來自權威 服務器的響應。
或有時
捲曲錯誤60:SSL證書問題:無法獲取本地發行人 證書(見http://curl.haxx.se/libcurl/c/libcurl-errors.html)
但是,當我得到的meta標籤一個逐一個:get_meta_tags('http://google.com')
而不是在循環中,我能夠成功檢索。
由於我正在做一個批次的網頁抓取,我必須做一個循環,這是一個由10秒批量。
我甚至設置:
ini_set('max_execution_time', 300);
ini_set('default_socket_timeout', 10);
我也使用Goutte的網頁抓取DOM(鏈接,標題,H1)。由於我無法使用Goutte獲取元標記,因此我改用get_meta_tags()
。但是如果Goutte有能力在循環內沒有任何問題的情況下獲得元標籤,那就太棒了。
到底爲什麼不能GOUTTE得到meta標籤,因爲你是陳述? – codedge