Я пытался получить некоторые данные с сайта wikia, используя simple_html_dom lib для php. в основном, что я делаю, это использовать wikia api для преобразования в html-рендеринг и извлечения данных оттуда. После извлечения я буду перекачивать эти данные в базу данных mysql для сохранения. Моя проблема заключается в том, что, как правило, я буду вытаскивать 300 записей, и я застрял на 93 записях с файлом_get_html, равным нулю, что приведет к сбою функции find(). Я не уверен, почему он останавливается на 93 записей, но я попробовал различные решения, такие какphp timeout с file_get_html
ini_set('default_socket_timeout', 120);
set_time_limit(120);
в основном я буду иметь страницу Викия доступа в 300 раз, чтобы получить эти 300 записей. Но в основном мне удастся получить 93 записи до того, как file_get_html получит значение null. Любая идея, как я могу решить эту проблему?
У меня есть тест-локоть, а также с той же проблемой.
function test($url){
$ch=curl_init();
$timeout=5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$result=curl_exec($ch);
curl_close($ch);
return $result;
}
$baseurl = 'http://xxxx.wikia.com/index.php?';
foreach($resultset_wiki as $name){
// Create DOM from URL or file
$options = array("action"=>"render","title"=>$name['name']);
$baseurl .= http_build_query($options,'','&');
$html = file_get_html($baseurl);
if($html === FALSE) {
echo "issue here";
}
// this code for cURL but commented for testing with file_get_html instead
$a = test($baseurl);
$html = new simple_html_dom();
$html->load($a);
// find div stuff here and mysql data pumping here.
}
$ resultsetwiki массив со списком заголовка для извлечения из викия, в основном resultsetwiki набор данных нагрузки из БД, а также перед выполнением поиска.
практически я буду его этот тип ошибки
Call to a member function find() on a non-object in
Вы пытались использовать «завиток»? – Ghost
да, но я все равно получаю тот же результат попадания нулевой ошибки на запись 93. Как ни в чем не отличается, не используя завиток. – user1897151
Разве веб-сайт просто не дросселирует вас, потому что вы отправляете большое количество звонков им за очень короткий период времени? – Erik