Не могу почистить результаты поиска, Google постоянно меняет структуру HTML - PullRequest
0 голосов
/ 30 мая 2019

Моя цель - очистить результаты поиска с помощью PHP Simple HTML DOM Parser. который работает нормально для меня. Но через каждые один или два дня Google меняет структуру HTML, и мой код перестает работать.

Вот мой код, который работал раньше:

include("simple_html_dom.php");
$data = file_get_contents('https://www.google.com/search?q=stackoverflow');
$html = str_get_html($data);
$i=0;
$linkObjs = $html->find('h3[class=r] a');
foreach ($linkObjs as $linkObj) {
    $i++;
    $url = trim($linkObj->href);
    $trim = substr($url, 0, 7);
    if ($trim=="/url?q=") {
        $url = substr($url, 7);
    }
    $trim_2 = stripos($url, '&sa=U');
    if ($trim_2 != false) {
        $url = substr($url, 0, $trim_2);
    }
    echo "$i:".$url.'<br>';
}

Они обычно меняют имена классов и тегов вместе со структурой HTML-ссылок

1 Ответ

0 голосов
/ 12 июня 2019

У меня была такая же проблема. Попробуйте

$linkObjs = $html->find('div[class=jfp3ef] a');

и он снова будет работать.

...