Heim  >  Fragen und Antworten  >  Hauptteil

PHP cURL zeigt beim Überprüfen der Sammlung nicht alle DOM-Tags an

Ich möchte Code implementieren, um Kommentare aus dem DOM einer bestimmten Seite zu sammeln.

Das cURL-Ergebnis ist unvollständig und ich weiß nicht warum, da einige Untertags im DOM im Ergebnis nicht sichtbar sind.

Das DOM sieht im Inspektor so aus:

Ich versuche, das DOM mithilfe des folgenden Codeausschnitts zu sammeln:

$domain = 'feefo.com';
$page_id = 'firebrand-promotions';

$curli = curl_init();

curl_setopt_array($curli, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_FRESH_CONNECT => true,
    CURLOPT_URL => 'https://www.' . $domain . '/en-US/reviews/' . $page_id . '?displayFeedbackType=SERVICE&timeFrame=YEAR'

    CURLOPT_HTTPHEADER => [
        'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,* /*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'Accept-Language: en-US;q=0.8,en;q=0.7',
        'Cache-control: max-age=0',
        'Referer: https://' . $domain,
        'sec-fetch-mode: navigate',
        'sec-fetch-site: none',
        'sec-fetch-dest: document',
        'sec-fetch-user: ?1',
        'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
    ]
]);

$curlResult = curl_exec($curli);

Was ich im Abschnitt mit den cURL-Ergebnisinhalten sehe, ist Folgendes:

<div class="container">
    <global></global>
</div>

Die Markierung sieht also leer aus, sollte es aber nicht sein.

Ich versuche, den -Tag-Inhalt mit dem folgenden Code zu extrahieren:

$dom = new DOMDocument();
$dom->validateOnParse = true;
@$dom->loadHTML($curlResult);

$globals = $dom->getElementsByTagName('global');

$xmlPath = new DOMXPath($dom);

$reviews = $xmlPath->query('//global');

Aber ich sehe immer noch keine Tags in den -Tags.

Kann mir jemand dieses Problem erklären? Wie kann dieses Problem gelöst werden?

Vielen Dank für Ihre Hilfe, Mühe und Zeit. :)

P粉677684876P粉677684876375 Tage vor548

Antworte allen(1)Ich werde antworten

  • P粉124070451

    P粉1240704512023-09-13 15:04:30

    很有可能你在 Curl 中得到的正是浏览器得到的,但浏览器开始执行修改 DOM 的 javascript。

    你看不到 with with Curl,因为 Curl 无法执行 Javascript。

    Antwort
    0
  • StornierenAntwort