မျက်မှောက်ခေတ်ဝက်ဘ်ဆိုက်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဝက်ဘ်ဆိုက်များစွာ၏တက်ကြွလှုပ်ရှားသောအကြောင်းအရာများကို Javascript မှတစ်ဆင့် HTML စာမျက်နှာများသို့ထုတ်လုပ်သည်။ Webs Brawlers များအတွက်ဤရွေ့ကားပြောင်းလဲနေသောအကြောင်းအရာအမျိုးအစားသည်ရိုးရာတွား 0 င်စိန်ခေါ်မှုများကိုယူဆောင်လာလိမ့်မည်။ ဤပြ problem နာကိုဖြေရှင်းရန်ဤဆောင်းပါးသည် JavaScript မှပြောင်းလဲခြင်းနှင့်ဘုံဖြေရှင်းချက်များကိုပြသရန် dypspider ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
တက်ကြွသောအကြောင်းအရာများကိုပုံမှန်အားဖြင့် 0 န်ဆောင်မှုခံယူသူတစ် ဦး ကကွပ်မျက်ပြီးနောက် JavaScript script မှဝက်ဘ်စာမျက်နှာပေါ်သို့ပုံမှန်အားဖြင့်ဝက်ဘ်စာမျက်နှာပေါ်သို့ပြန်ဆိုသည်။ ဆာဗာဘက်တွင် HTML ကိုတိုက်ရိုက် rendering နှင့်မတူဘဲ JavaScript သည်ပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိပြီးပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိပြီးပိုမိုနီးကပ်စွာအပြန်အလှန်အကျိုးသက်ရောက်မှုရှိသောအတွေ့အကြုံကိုပေးနိုင်သည်။ သို့သော်တွား 0 န်ထမ်းများသည်ဤအကြောင်းအရာအမျိုးအစားကိုတွားသွားသောအခါရိုးရာနည်းလမ်းများသည်မူလ HTML အရင်းအမြစ်ကုဒ်ကိုသာရယူနိုင်ပြီး JavaScript rendering လုပ်ပြီးနောက်အမှန်တကယ်အကြောင်းအရာများကိုမမြင်နိုင်ပါ။
JavaScript rendering ကိုမကိုင်တွယ်နိုင်သည့်ရိုးရာတွားသမားများ၏ကန့်သတ်ချက်များကိုကျော်လွှားနိုင်ရန်အတွက်ကျွန်ုပ်တို့သည် web rendering အတွက်ခေါင်းမစားနိုင်သော browser ကိုသုံးနိုင်သည်။ ခေါင်းမဲသည့် Chrome သို့မဟုတ် Phantomjs ကဲ့သို့သော Headless browser များက JavaScript ကို တင်. execute လုပ်နိုင်သည်, Dynamic Repress မှ headless chrome ကိုမည်သို့အသုံးပြုရမည်ကိုအတွက်နမူနာကုဒ်ဖြစ်သည်။
<?php use JonnyWPhantomJsClient; $client = Client::getInstance(); $request = $client->GetMessageFactory ()> 'http://xplequest),' Get '); $ တုံ့ပြန်မှု = $ client-> GetMessageFactory () -> creeteresponse (); $ client-> Send ($ တောင်းဆိုမှု, $ တုံ့ပြန်မှု); // renderedhtml = $ တုံ့ပြန်မှု -> getcontent (); // လုပ်ငန်းစဉ် rendering ရလဒ် // ... >
အထက်ပါကုဒ်များတွင်ခေါင်းစဉ်မရှိသော Chrome ဥပမာအားဖြင့် HTML အကြောင်းအရာများကိုကျွန်ုပ်တို့ရရှိသည် သင်ဤနည်းလမ်းကို dymiticated page content ပြန်ဆိုထားသည့်ဤနည်းလမ်းကိုသုံးနိုင်သည်။
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 တွားလှတ်ခြင်း၏ထိရောက်မှုနှင့်တိကျမှန်ကန်မှုကိုများစွာတိုးတက်စေနိုင်သည်။