လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP Crawler Asnchronous Contents Loading Skills - တွားတတ်သောပြ problem နာကိုလုံးဝဖြေရှင်းရန်အဓိကနည်းလမ်းသုံးခု

PHP Crawler Asnchronous Contents Loading Skills - တွားတတ်သောပြ problem နာကိုလုံးဝဖြေရှင်းရန်အဓိကနည်းလမ်းသုံးခု

gitbox 2025-06-15

1 ။ လက်ရှိအခြေအနေ

ဝက်ဘ်စာမျက်နှာကိုတွားသွားသည့်အခါ, အီး - ကူးသန်းရောင်းဝယ်ရေးပလက်ဖောင်းများနှင့်ပတ်သက်သောထုတ်ကုန်များကိုပြန်လည်သုံးသပ်ခြင်းနှင့်အကြောင်းအရာများကို scrollings အကြောင်းအရာများကို scrolling လုပ်ခြင်းကဲ့သို့သောပြ problems နာများကိုသင်မကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ဤအကြောင်းအရာအမျိုးအစားကိုများသောအားဖြင့် Ajax နည်းပညာမှတစ်ဆင့်ပုံမှန်အားဖြင့် 0 င်ရောက်လေ့ရှိသည်။

2 ။ ပြတ်တောင်းပြတ်တောင်းတင်ခြင်း၏နိယာမ

Web Page တွင်ပထမဆုံး 0 န်ဆောင်မှုပေးသည့်အခါအကြောင်းအရာ၏အစိတ်အပိုင်းတစ်ခုသာလျှင်ကျန်တဲ့အပိုင်းကိုပြန်ဆိုပြီးကျန်ကိုနောက်ခံတောင်းဆိုမှုများကိုနောက်ခံတောင်းဆိုမှုများကိုအပြီးသတ်ဖြည့်ဆည်းပေးနိုင်သည်။ ဤနည်းလမ်းသည် 0 က်ဘ်စာမျက်နှာတုန့်ပြန်မှုမြန်နှုန်းနှင့်အသုံးပြုသူအတွေ့အကြုံကိုတိုးတက်စေသည်။

3 ။ ဖြေရှင်းနည်း

3.1 Selenium ကိုအသုံးပြုပြီး browser စစ်ဆင်ရေးများကိုတုပပါ

Selenium သည်အလိုအလျောက်စမ်းသပ်ခြင်းကိရိယာတစ်ခုဖြစ်သည့်အလိုအလျောက်စမ်းသပ်ခြင်းကိရိယာတစ်ခုဖြစ်သည်။ ဘရောက်ဇာကိုအလိုအလျောက်စာမျက်နှာကိုအလိုအလျောက် scrollate လုပ်ပြီး 0 န်ဆောင်မှုကိုစောင့်ဆိုင်းရန်စောင့်ဆိုင်းခြင်းဖြင့်သင် dynamically generated content ကိုတွားသွားနိုင်သည်။

$ driver = remotewebdriver :: Create ($ host, desiredcappilities :: Firefox ());
$ driver-> Get ($ URL);
$ driver-> execomescript ("Window.Scrollto (0, Document.Scrollheight);"); // စာမျက်နှာကိုကြည့်ပါအိပ်စက်ခြင်း (5); // $ html = $ driver-> getpeource () ကိုဖွင့်လှစ်ရန် load လုပ်ဖို့ esolnchronous ဒေတာကိုစောင့်ပါ။

မကြာခဏ scrolling နှင့် loading လုပ်ငန်းများကိုရှောင်ရှားရန်၎င်းကိုအသုံးပြုသောအခါစွမ်းဆောင်ရည်စားသုံးမှုကိုအာရုံစိုက်ပါ။

3.2 ဒေတာများကိုရယူရန် asynchronous interface ကိုတိုက်ရိုက်ခွဲခြမ်းစိတ်ဖြာပါ

အချို့သောဝက်ဘ်ဆိုက်များသည် asnchronously loaded data များကို interface မှတစ်ဆင့်ပြန်ပို့ပေးပြီး JSON သို့မဟုတ်အခြားပုံစံများတွင်အချက်အလက်များကိုထိရောက်စွာရယူရန် interface ကိုတိုက်ရိုက်တောင်းဆိုလိမ့်မည်။ ဝက်ဘ်စာမျက်နှာတောင်းဆိုမှုများကိုခွဲခြမ်းစိတ်ဖြာခြင်းအားဖြင့်သက်ဆိုင်ရာ API interface ကိုရှာဖွေခြင်းကိုစာမျက်နှာပြန်ဆိုခြင်းနှင့်လိုအပ်သောသတင်းအချက်အလက်များကိုလျင်မြန်စွာဖမ်းယူနိုင်သည်။

$ url = "http://xxxxx.com/api/xxxx";
$ ဒေတာ = file_get_contents ($ URL);
$ JSON = JSONS_Decode ($ ဒေတာ, စစ်မှန်သော);

အကယ်. interface တွင်ခွင့်ပြုချက်ကန့်သတ်ချက်များရှိပါကသင်သည် login သို့မဟုတ်အခြားအတည်ပြုခြင်းလုပ်ငန်းစဉ်ကိုပထမ ဦး စွာဖြည့်စွက်ရမည်။

3.3 dynamic အကြောင်းအရာရရှိရန် Phantomjs ကိုသုံးပါ

Phantomjs သည် JavaScript ကုဒ်ကို javascript ကုဒ်ကိုလုပ်ဆောင်နိုင်ပြီးပြတ်တောင်းပြတ်တောင်းဖြန့်ချိမှုနှင့် HTML အပြည့်အဝတင်ပို့နိုင်သည်။ PHP ခေါ်ဆိုမှု command line method နှင့်ပေါင်းစပ်ထားသော Usynchronous Data Crawling ကိုသဘောပေါက်နိုင်သည်။

$ js = "" "" Webpage's ('webpage') လိုအပ်သည်။ ဖန်တီးပါ (),
စာမျက်နှာ.open ('"။ $ URL ။ ", function ကို (status) {
    if (status === အောင်မြင်မှု ') {
        Console.log (Page.Content);
    }
    phantom.exit ();
});
$ html = EXIC ("Phantomjs -e -e '" ။ "' '");

ဤနည်းလမ်းကိုမသုံးမီ Phantomjs များကို install လုပ်ရန်နှင့် PHP ပတ်ဝန်းကျင်သည် EUR EURN လုပ်ငန်းများကိုအထောက်အကူပြုရန်လိုအပ်သည်။

4 ။ အကျဉ်းချုပ်

ပြတ်တောင်းပြတ်တောင်းတင်ခြင်းသည်ခေတ်သစ်ဝက်ဘ်စာမျက်နှာများအသုံးပြုလေ့ရှိသောနည်းပညာဖြစ်သည်။ Seenium မှတစ်ဆင့် browser operations များကိုတုပကာ Phantomjs ကို အသုံးပြု. ဝက်ဘ်စာမျက်နှာများကိုဖြည့်ဆည်းပေးရန်နှင့် Phantomjs ကို အသုံးပြု. ဝက်ဘ်စာမျက်နှာများကိုဖြည့်စွက်ပါ။ developer များသည် crawler ထိရောက်မှုနှင့်တည်ငြိမ်မှုကိုတိုးတက်စေရန်တိကျစွာလိုအပ်ချက်များနှင့်အညီသင့်လျော်သောနည်းလမ်းကိုရွေးချယ်နိုင်သည်။