လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Phpspider သည် JavaScript dynamic အကြောင်းအရာများကိုကိုင်တွယ်သည် - Headless Browser နှင့် API ပြန်ဆိုခြင်းစွမ်းရည်ကိုအသုံးပြုခြင်း

Phpspider သည် JavaScript dynamic အကြောင်းအရာများကိုကိုင်တွယ်သည် - Headless Browser နှင့် API ပြန်ဆိုခြင်းစွမ်းရည်ကိုအသုံးပြုခြင်း

M66 2025-06-16

Phpspider Advanced Guide: JavaScript မှပြန်ဆိုထားသော dynamic content ကိုကိုင်တွယ်ဖြေရှင်းနည်း

မျက်မှောက်ခေတ်ဝက်ဘ်ဆိုက်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဝက်ဘ်ဆိုက်များစွာ၏တက်ကြွလှုပ်ရှားသောအကြောင်းအရာများကို Javascript မှတစ်ဆင့် HTML စာမျက်နှာများသို့ထုတ်လုပ်သည်။ Webs Brawlers များအတွက်ဤရွေ့ကားပြောင်းလဲနေသောအကြောင်းအရာအမျိုးအစားသည်ရိုးရာတွား 0 င်စိန်ခေါ်မှုများကိုယူဆောင်လာလိမ့်မည်။ ဤပြ problem နာကိုဖြေရှင်းရန်ဤဆောင်းပါးသည် JavaScript မှပြောင်းလဲခြင်းနှင့်ဘုံဖြေရှင်းချက်များကိုပြသရန် dypspider ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ JavaScript မှပြန်ဆိုထားသောပြောင်းလဲနေသောအကြောင်းအရာများကိုနားလည်ပါ

တက်ကြွသောအကြောင်းအရာများကိုပုံမှန်အားဖြင့် 0 န်ဆောင်မှုခံယူသူတစ် ဦး ကကွပ်မျက်ပြီးနောက် JavaScript script မှဝက်ဘ်စာမျက်နှာပေါ်သို့ပုံမှန်အားဖြင့်ဝက်ဘ်စာမျက်နှာပေါ်သို့ပြန်ဆိုသည်။ ဆာဗာဘက်တွင် HTML ကိုတိုက်ရိုက် rendering နှင့်မတူဘဲ JavaScript သည်ပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိပြီးပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိပြီးပိုမိုနီးကပ်စွာအပြန်အလှန်အကျိုးသက်ရောက်မှုရှိသောအတွေ့အကြုံကိုပေးနိုင်သည်။ သို့သော်တွား 0 န်ထမ်းများသည်ဤအကြောင်းအရာအမျိုးအစားကိုတွားသွားသောအခါရိုးရာနည်းလမ်းများသည်မူလ HTML အရင်းအမြစ်ကုဒ်ကိုသာရယူနိုင်ပြီး JavaScript rendering လုပ်ပြီးနောက်အမှန်တကယ်အကြောင်းအရာများကိုမမြင်နိုင်ပါ။

2 ။ Page Rendering အတွက်ခေါင်းကိုက်ခြင်း browser ကိုသုံးပါ

JavaScript rendering ကိုမကိုင်တွယ်နိုင်သည့်ရိုးရာတွားသမားများ၏ကန့်သတ်ချက်များကိုကျော်လွှားနိုင်ရန်အတွက်ကျွန်ုပ်တို့သည် web rendering အတွက်ခေါင်းမစားနိုင်သော browser ကိုသုံးနိုင်သည်။ ခေါင်းမဲသည့် Chrome သို့မဟုတ် Phantomjs ကဲ့သို့သော Headless browser များက JavaScript ကို တင်. execute လုပ်နိုင်သည်, Dynamic Repress မှ headless chrome ကိုမည်သို့အသုံးပြုရမည်ကိုအတွက်နမူနာကုဒ်ဖြစ်သည်။

<?php
use JonnyWPhantomJsClient;

$client = Client::getInstance();
$request = $client->GetMessageFactory ()> &#39;http://xplequest),&#39; Get &#39;);
$ တုံ့ပြန်မှု = $ client-> GetMessageFactory () -> creeteresponse ();

$ client-> Send ($ တောင်းဆိုမှု, $ တုံ့ပြန်မှု);

// renderedhtml = $ တုံ့ပြန်မှု -> getcontent ();

// လုပ်ငန်းစဉ် rendering ရလဒ် // ...
>

အထက်ပါကုဒ်များတွင်ခေါင်းစဉ်မရှိသော Chrome ဥပမာအားဖြင့် HTML အကြောင်းအရာများကိုကျွန်ုပ်တို့ရရှိသည် သင်ဤနည်းလမ်းကို dymiticated page content ပြန်ဆိုထားသည့်ဤနည်းလမ်းကိုသုံးနိုင်သည်။

3 ။ client rendering api ကိုသုံးပါ

Headless browser များအပြင် JavaScript ကိုကိုင်တွယ်ဖြေရှင်းရန်အခြားနည်းလမ်းမှာဖောက်သည်အား 0 န်ဆောင်မှုခံယူသူအားပေးသည့်တတိယပါတီ 0 န်ဆောင်မှုများကိုအသုံးပြုရန်ဖြစ်သည်။ ဥပမာအားဖြင့်, Prerender.io သည် URL တောင်းဆိုမှုများကိုပို့ပေးရန်နှင့်စာမျက်နှာအကြောင်းအရာများပြန်ဆိုရန်ခွင့်ပြုသည်။ Prerender.io API မှတဆင့်ပြန်လည်ပြန်ဆိုထားသောစာမျက်နှာကိုမည်သို့ရယူရမည်ကိုနမူနာကုဒ်တစ်ခုဖြစ်သည်။

<?php
$url = 'http://api.prerender.io/https://example.com';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);

// မလုပ်မနေရမဟုတ်သော:ထည့်သည်Prerender.io၏Tokenအထောက်အထား authentication ကိုလုပ်ဆောင်ပါ
// curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-Prerender-Token: YOUR_PRERENDER_TOKEN']);

$renderedHtml = curl_exec($ch);

// ရလဒ်များပြန်ဆိုခြင်းလုပ်ငန်းစဉ်
// ...

curl_close($ch);
?>

ဤဥပမာတွင် PHP ၏ Curl စာကြည့်တိုက်ကို 0 က်ဘ်စာမျက်နှာအကြောင်းအရာကိုရယူရန် Prerender.io API သို့တောင်းဆိုရန်တောင်းဆိုရန် PHP ၏ဆံပင်စာကြည့်တိုက်ကိုအသုံးပြုသည်။ တောင်းဆိုမှု parameters တွေကိုထပ်မံစိတ်ကြိုက်ပြုပြင်ပြီးအမှန်တကယ်လိုအပ်ချက်များအရပြန်ဆိုသည့်ရလဒ်များကိုလုပ်ဆောင်နိုင်သည်။

နိဂုံးချုပ်အားဖြင့်

ခေါင်းကိုက်ခြင်း (ဥပမာ - ခေါင်းစဉ်မဲ့သော Chrome) သို့မဟုတ်တတိယပါတီ 0 န်ဆောင်မှုခံယူသူ (ဥပမာ - Prerender) ဟုပြန်ဆိုသည့် adiscless browser များ (ဥပမာ - Prerender. ) ဟုပြန်ဆိုခြင်းဖြင့် phpspider မှ Phpspider ကို 0 ယ်ယူရန်, မှန်ကန်သောကိရိယာများနှင့်နည်းလမ်းများကိုရွေးချယ်ခြင်းသည် dynamic web တွားလှတ်ခြင်း၏ထိရောက်မှုနှင့်တိကျမှန်ကန်မှုကိုများစွာတိုးတက်စေနိုင်သည်။