PHP cURL tidak menunjukkan semua teg DOM semasa menyemak koleksi
P粉677684876
P粉677684876 2023-09-12 20:03:06
0
1
619

Saya ingin melaksanakan beberapa kod untuk mengumpul ulasan daripada DOM halaman tertentu.

Hasil cURL tidak lengkap dan saya tidak tahu mengapa kerana beberapa subteg dalam DOM tidak kelihatan dalam hasilnya.

DOM kelihatan seperti ini dalam pemeriksa:

Saya cuba mengumpul DOM menggunakan coretan kod berikut:

$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);

Apa yang saya lihat dalam bahagian kandungan hasil cURL ialah ini:

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

Jadi penanda kelihatan kosong, tetapi tidak sepatutnya.

Saya cuba mengekstrak kandungan tag menggunakan kod berikut:

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

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

$xmlPath = new DOMXPath($dom);

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

Tetapi saya masih tidak melihat sebarang teg dalam teg .

Bolehkah seseorang menjelaskan masalah ini kepada saya? bagaimana untuk menyelesaikan masalah ini?

Terima kasih banyak atas bantuan, usaha dan masa anda. :)

P粉677684876
P粉677684876

membalas semua(1)
P粉124070451

Ada kemungkinan besar bahawa apa yang anda perolehi dalam Curl adalah sama seperti yang diperolehi oleh penyemak imbas, tetapi penyemak imbas mula melaksanakan javascript yang mengubah suai DOM.

Anda tidak boleh melihat dengan Curl kerana Curl tidak dapat melaksanakan Javascript.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan