⊗ppPsMtLn 46 of 84 menu

PHP da havolalar bo‘yicha pars qilish

Keling, endi ko‘p sahifali saytlarni qanday pars qilishni ko‘rib chiqaylik. Boshlash uchun eng oddiy variantni sinab ko‘ramiz, bunda asosiy sahifada boshqa sahifalarga olib boradigan havolalar menyusi mavjud. Bizning holatda bu menyu quyidagicha ko‘rinsin:

<nav> <a href="http://targ.loc/1.html">1</a> <a href="http://targ.loc/2.html">2</a> <a href="http://targ.loc/3.html">3</a> <a href="http://targ.loc/4.html">4</a> <a href="http://targ.loc/5.html">5</a> </nav>

Menyu olib boradigan har bir sahifa quyidagicha ko‘rinsin:

<main> text1 </main>

Faraz qilaylik, biz pars qilishni saytning asosiy sahifasidan boshlaymiz:

<?php $start = 'http://targ.loc/'; ?>

Asosiy sahifa matnini olamiz:

<?php $main = getPage($start); ?>

Menyu havolalarini olamiz:

<?php $hrefs = getHrefs($main, 'nav a'); ?>

Endi tsikl yordamida havolalarni aylanib chiqamiz va kerakli barcha sahifalarni pars qilamiz:

<?php foreach ($hrefs as $href) { $text = getPage($href); var_dump($text); } ?>

Saytni targ1.zip havolasidan yuklab oling va o‘zingizda ishga tushiring. Parser yozing, u asosiy sahifaga kiradi, menyudan barcha havolalarni oladi, havolalar bo‘yicha barcha sahifalarni ochadi va title va main teglarining tarkibini oladi.

Oldingi vazifani o‘zgartiring, shunda sahifa sarlavhalari va matnlari ma’lumotlar bazasiga saqlansin.

azbydeenesfrkakkptruuz