လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> လျင်မြန်စွာ Master Php Crawler ဖွံ့ဖြိုးတိုးတက်မှု - HTTP တောင်းဆိုမှုများမှအချက်အလက်များခွဲခြမ်းစိတ်ဖြာခြင်းမှခွဲခြမ်းစိတ်ဖြာခြင်း၏လုပ်ငန်းစဉ်တစ်ခုလုံး

လျင်မြန်စွာ Master Php Crawler ဖွံ့ဖြိုးတိုးတက်မှု - HTTP တောင်းဆိုမှုများမှအချက်အလက်များခွဲခြမ်းစိတ်ဖြာခြင်းမှခွဲခြမ်းစိတ်ဖြာခြင်း၏လုပ်ငန်းစဉ်တစ်ခုလုံး

gitbox 2025-06-24

1 ။ တွားလိုချင်သူများမိတ်ဆက်

Crawler သည်အင်တာနက်မှသတင်းအချက်အလက်များကိုစုဆောင်းရန်ဒီဇိုင်းပြုလုပ်ထားသောအလိုအလျောက်အစီအစဉ်တစ်ခုဖြစ်သည်။ ၎င်းသည် browser ကိုအပြုအမူကိုတုပကာ 0 န်ထုပ်သောစာမျက်နှာများကိုရယူသည်။ အစွမ်းထက်သော server-side scripting language တစ်ခုအနေဖြင့် PHP ကိုထိရောက်သောတယောအစီအစဉ်များကိုရေးရန်လည်းအသုံးပြုနိုင်သည်။

2 ။ PHP တွင်တွား 0 ယ်သူများကိုအကောင်အထည်ဖော်ရန်အဆင့်များ

2.1 ။ http တောင်းဆိုမှုကိုပေးပို့ပါ

တွားတတ်သောတိရစ္ဆာန်များအတွက်ပထမခြေလှမ်းမှာ HTTP တောင်းဆိုမှုများမှတဆင့် destination ဝက်ဘ်စာမျက်နှာ၏ပါဝင်မှုကိုရယူရန်ဖြစ်သည်။ PHP သည် HTTP တောင်းဆိုမှုများကိုပို့ရန်နည်းလမ်းအမျိုးမျိုးကိုပေးသည်။ အရိုးရှင်းဆုံးနှင့်အသုံးအများဆုံးမှာ file_get_contents () function ကိုဖြစ်သည်။

 
$url = "http://example.com";
$html = file_get_contents($url);

HTML source code ကို 0 က်ဘ်စာမျက်နှာ၏ html source code ကိုတိုက်ရိုက်ရယူရန်နှင့်၎င်းကို variable ကို $ html တွင်သိမ်းထားရန် file_get_contontents () function ကိုသုံးပါ။

2.2 ။ html ခွဲခြမ်းစိတ်ဖြာ

ဝဘ်စာမျက်နှာ၏ code ကိုရယူပြီးနောက် HTML သည်လိုအပ်သောသတင်းအချက်အလက်များကိုထုတ်ယူရန် HTML ကိုခွဲခြမ်းစိတ်ဖြာရန်လိုအပ်သည်။ PHP ၏ Built-in DomDocument Class သည် XML နှင့် HTML စာရွက်စာတမ်းများကိုကိုင်တွယ်ရန်အကောင်းဆုံးဖြစ်သည်။

 
$dom = new DOMDocument();
@$dom->loadHTML($html);

ဤနေရာတွင် Loadhtmm () နည်းလမ်းကို HTML string ကို dom data လုပ်ငန်းများကိုလွယ်ကူချောမွေ့စေရန် dom object အဖြစ်ပြောင်းလဲရန်အသုံးပြုသည်။ HTML ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းသတိပေးမက်ဆေ့ခ်ျများကိုရှောင်ရှားရန် @ ထည့်ပါ။

2.3 ။ XPath ကိုအသုံးပြုပြီးအချက်အလက်များကိုထုတ်ယူပါ

XPATH ဆိုသည်မှာ XML နှင့် HTML စာရွက်စာတမ်းများရှိ node များကိုရှာဖွေရန်အသုံးပြုသောစုံစမ်းမှုဘာသာစကားဖြစ်သည်။ domxpath class နှင့်အတူပေါင်းစပ်ထားသောဝက်ဘ်စာမျက်နှာရှိပစ်မှတ်များကိုအလွယ်တကူရှာဖွေရန်နှင့်ထုတ်ယူနိုင်သည်။

 
$xpath = new DOMXPath($dom);
$elements = $xpath->query("//h1");
foreach ($elements as $element) {
  echo $element->nodeValue;
}

အထက်ပါကုဒ်ကို XPhath Expression မှ "// H1" မှတဆင့်နေရာချထားသည်။

Tags နှင့်၎င်းတို့၏စာသားအကြောင်းအရာကိုတ ဦး တည်းအားဖြင့်တ ဦး တည်း။

3 ။ Crawler ဥပမာ - 0 က်ဘ်စာမျက်နှာခေါင်းစဉ်

3.1 ။ Code အကောင်အထည်ဖော်မှု

 
$url = "http://example.com";
$html = file_get_contents($url);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$elements = $xpath->query("//title");
if ($elements->length > 0) {
  $title = $elements->item(0)->nodeValue;
  echo $title;
} else {
  echo "No title found";
}

ဤကုဒ်သည် 0 က်ဘ်စာမျက်နှာအရင်းအမြစ်ကုဒ်ကို ဦး စွာတောင်းဆိုသည်။ ထို့နောက် HTML ကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်နောက်ဆုံးတွင် XPath မှတဆင့်ရှာသည် tag, output ဝက်ဘ်စာမျက်နှာခေါင်းစဉ်။ </ p> <h3> 3.2 ။ RIGHT ရလဒ် </ h3> <p> destination web စာမျက်နှာ၏ခေါင်းစဉ်သည် "ဥပမာဝက်ဘ်ဆိုက်" ဖြစ်သည်။ </ p> <h3> 4 ။ အကျဉ်းချုပ် </ h3> <p> PHP ကို ​​အသုံးပြု. PHP ကိုအသုံးပြုပါ။ ဤဆောင်းပါးသည် HTMP တောင်းဆိုမှုများကိုပို့ခြင်း, HTML ကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့် XPATH ကို အသုံးပြု. XPATH ကို အသုံးပြု. XPATH ကိုအသုံးပြုခြင်းနှင့်ဥပမာအားဖြင့်တိကျသောအကောင်အထည်ဖော်မှုကိုပြသသည်။ ဤအကြောင်းအရာများကိုကျွမ်းကျင်ပြီးနောက်သင်ပိုမိုရှုပ်ထွေးသောတွားတတ်သောအလုပ်များကိုအောင်မြင်ရန်သင်၏လိုအပ်ချက်နှင့်အညီသင်၏လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးနိုင်သည်။ </ p> </div> </div> <!--<div class="b_box"> <div class="title_text"><i class="iconfont icon-jiangzhang"></i></div> <ul class="img_text_template"> </ul> </div>--> </div> <div class="right_box "> <div class="b_box"> <div class="widget_box"> <ul class="yyfl_box"> <li><a href="/my/php/file_get_contents.html">file_get_contents</a><i class="iconfont icon-AIGC-81"></i></li> </ul> </div> </div> <div class="b_box"> <div class="title_text"><i class="iconfont icon-wenzhangguanli"></i>ဆက်စပ်အကြောင်းအရာ</div> <ul class="img_text_template lr"> <li> <span class="img_item"> <img src="/files/images/20250624/202506241358149162.jpg" alt="PHP တွင်တွား 0 င်အကောင်အထည်ဖော်မှုဖြစ်စဉ်ကိုလေ့လာရန်ဆယ်မိနစ်"> </span> <div class="content"> <a href="/my/20d45ce17bac24e89.html" class="desc link_a"> PHP တွင်တွား 0 င်အကောင်အထည်ဖော်မှုဖြစ်စဉ်ကိုလေ့လာရန်ဆယ်မိနစ် </a> </div> </li> </ul> </div> </div> </div> </section> <footer class="footer_template"> <div class="w12_box"> <div class="desc"> <div class="f_log"> <a href=""><img src="/images/logo.png" alt="gitbox.net"></a> </div> <div class="content">အဓိက Programming Language များ၏ Function အသုံးပြုနည်းများနှင့် လက်တွေ့နည်းလမ်းများကိုစုစည်းထားပြီး မိမိ၏ အဓိကကျသော သိပ္ပံနည်းပညာများကို ထိထိရောက်ရောက်သင်ယူနိုင်ရန်၊ ဖန်တီးမှုအခက်အခဲများကို သက်သာစွာ ဖြေရှင်းနိုင်ရန် ကူညီပေးသည်။ </div> <div class="info">ကုဒ်လေ့လာရန် သိုလှောင်ခန်း - gitbox.net</div> </div> <dl> <dd> <h3></h3> </dd> <dd> <h3></h3> </dd> </dl> </div> <div class="other"> <p></p> </div> </footer> </body> <script src="/js/jquery.js" type="text/javascript" charset="utf-8"></script> <script src="/js/lazy.js" type="text/javascript" charset="utf-8"></script> <script src="/js/swiper.min.js" type="text/javascript" charset="utf-8"></script> <script src="/js/viewer.js" type="text/javascript" charset="utf-8"></script> <script src="/js/index.js" type="text/javascript" charset="utf-8"></script> <script> commonMethod.wz(); function ctrVideo(str){ console.log(str); $(".ytp-play-button").each(function(){ let status = $(this).attr("data-title-no-tooltip"); if(status === "Pause" && status!=str){ console.log("Pause"); $(this).trigger("click"); } }) } window.addEventListener('popstate', function() { ctrVideo(""); }); $(".left_box").on("click",".ytp-large-play-button",function(){ console.log("midddle button") let status = $(".ytp-play-button").attr("data-title-no-tooltip"); ctrVideo(status); }) $(".content_template").on("click",".ytp-play-button",function(){ console.log("play button") let status = $(this).attr("data-title-no-tooltip"); ctrVideo(status); }) </script> </html>