Я создал скрипт php, чтобы получить результаты из Google Gologar.
function getUserScholarPage($authorId){
$userUrl = "http://scholar.google.it/citations?hl=it&user=" . $authorId . "&view_op=list_works&pagesize=10000";
$html = file_get_html($userUrl);
$rows = $html->find('#gsc_a_b tr[class="gsc_a_tr"]');
return $rows;
}
function getUserScholarBibliography( $rows ){
$publications = array();foreach( $rows as $row ){
$citations = str_replace(' ', '', $row->find('td[class="gsc_a_c"] a', 0)->plaintext) != '' ? trim($row->find('td[class="gsc_a_c"] a', 0)->plaintext) : 0;
$year = ($row->find('td[class="gsc_a_y"]', 0)->plaintext) ? trim($row->find('td[class="gsc_a_y"]', 0)->plaintext) : 0;
$url = getRealPaperURL('http://scholar.google.it' . $row->find('a[class="gsc_a_at"]',0)->href);
$type = 'ARTICLE';
$title = trim($row->find('a[class="gsc_a_at"]',0)->innertext);
$publications[] = array(
'type' => $type,
'title' => $title,
'authors' => trim($row->find('div[class="gs_gray"]',0)->innertext),
'journal' => trim(preg_replace("'<span[^>]*?>.*?</span>'si", '', $row->find('div[class="gs_gray"]',1)->innertext)),
'citations' => $citations,
'year' => $year,
'url' => $url,
'unique_identifier' => hash('md5', $year . $url . $title)
);
}
return $publications;
}
Но у меня проблема при вызове запроса.
Я получаю ошибку:
Предупреждение: file_get_contents (http://scholar.google.it/citations?hl=it&Пользователь = ХХХХХХХ&view_op = list_works&размер_страницы = 10000): не удалось открыть поток: ошибка HTTP-запроса! HTTP / 1.0 503 Сервис недоступен
в /var/www/html/scholar/simple_html_dom.php в строке 78
-simple_html_dom.php в строке 78
https://github.com/samacs/simple_html_dom/blob/master/simple_html_dom.php
Неустранимая ошибка: вызов функции-члена find () для необъекта в /var/www/html/scholar/scholar-biblio-loader.php в строке 21
-scholar-biblio-loader.php в строке 21
$rows = $html->find('#gsc_a_b tr[class="gsc_a_tr"]');
если я запускаю скрипт в localhost работает.
Если я запускаю скрипт на моем сервере, выдает ошибку
гугл блокирует звонок? в чем проблема?
Спасибо
Задача ещё не решена.
Других решений пока нет …