Geri çağırış Lim10Ata\Flatix\xfwidgets::gethtml yanlışdır (error_invalid_class).

Forumda sizi görməkdə şadıq 👋,

Forum məzmununa və bütün xidmətlərimizə daxil olmaq üçün qeydiyyatdan keçməli və ya foruma daxil olmalısınız. Foruma üzv olmaq tamamilə ödənişsizdir.

Qeydiyyatdan keç

Grabber haqqında məlumat..

2

SoxulcanPRO

Aktiv istifadəçi
WebMaster
Qoşuldu
26 Mar 2023
Mesajlar
82
Reaksiya hesabı
37
Xallar
18
Məlumatların çıxarılması vebsaytlardan və ya digər mənbələrdən məlumatların toplanması prosesidir. Bu əməliyyatı yerinə yetirmək üçün veb səhifələri oxuya bilən proqramlardan istifadə olunur. Bu proqramlar məlumatların toplanması prosesini avtomatlaşdırdıqları üçün məlumatların əl ilə toplanmasından daha sürətli və səmərəlidir.

PHP, Python və digər proqramlaşdırma dilləri məlumatların çıxarılmasını həyata keçirə bilən proqramlar sırasındadır.

https://www.php.net/manual/en/function.file-get-contents.php

Bu proqramlar veb-səhifələrdən məlumatları çıxarmaq və müəyyən formatda istədiyiniz məlumatı çıxarmaq üçün HTML kodları oxuyur. Məlumat əldə edərkən nəzərə alınmalı bəzi vacib məqamlar var. Bunlar aşağıdakılardır:

Məlumat mənbəyinə qoşulmaq üçün müvafiq üsullardan istifadə edilməlidir. Məsələn, bəzi veb-saytlar məlumatların çıxarılmasının qarşısını almaq üçün botların girişini məhdudlaşdıra bilər. Bu halda, məlumatları çıxarmaq üçün proxy serverlərdən və ya brauzer plaginlərindən istifadə etmək lazım ola bilər.

Məlumat mənbəyindən məlumatları çıxarmaq üçün düzgün üsullardan istifadə edilməlidir. Məsələn, bəzi veb-saytlar məlumatları dinamik şəkildə yükləyir, ona görə də məlumatları çəkmək üçün JavaScript kodlarına ehtiyacınız ola bilər. Məhz buna görə də verilənləri ələ keçirərkən düzgün alətlərdən istifadə etmək vacibdir.

Məlumatların toplanmasında sürət və səmərəlilik vacibdir. Buna görə də, məlumatları tutarkən düzgün kodlaşdırma üsullarından istifadə etməklə məlumatları tez və səmərəli şəkildə toplamaq mümkündür.

Məlumat mənbələrinə daxil olmaq üçün icazə tələb edən veb-saytlar üçün icazələri düzgün təyin etmək lazımdır. Əks halda, məlumatların çıxarılması prosesi hüquqi problemlərə səbəb ola bilər.

Məlumatların çıxarılması prosesində düzgün alətlərdən istifadə etmək, düzgün metodları tətbiq etmək və hüquqi məsələlərə diqqət yetirmək vacibdir. Buna görə də məlumatların alınması zamanı diqqətli olmaq lazımdır.


Məlumatları çəkmək üçün PHP ilə CURL istifadə edərək nümunə kodu yaza bilərəm. Məsələn, biz "https://www.google.com" saytından məlumat ala bilərik. Aşağıdakı nümunə kod bu veb-saytdan HTML kodunu əldə edəcək:

PHP:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
?>

Bu kodu istifadə edərək, siz HTML kodunu "https://www.google.com" ünvanında əldə edə və göstərə bilərsiniz.

Məlumat əldə edərkən nəzərə alınmalı bəzi vacib məqamlar bunlardır:

Məlumat mənbələrinə icazə verildiyinə əmin olun. Bəzi veb-saytlar botların girişini məhdudlaşdırır, ona görə də məlumatları çıxararkən düzgün icazələri əldə etmək vacibdir.

Məlumatların çıxarılması prosesi qeyri-etik olarsa, bu, hüquqi problemlərə səbəb ola bilər. Buna görə də, məlumatları ələ keçirərkən qanuna uyğun hərəkət etmək vacibdir.

Daim məlumat mənbələrini sorğulamaq serverlərin yavaşlamasına və ya hətta sıradan çıxmasına səbəb ola bilər. Buna görə də, məlumatları çıxararkən, emal intervallarını və sorğuların sayını məhdudlaşdırmaq lazımdır.

Məlumatların əldə edilməsi prosesində düzgün vasitələrdən istifadə edərək məlumatların tez və səmərəli şəkildə toplanması vacibdir. Məsələn, CURL kimi məlumatların çıxarılması üçün uyğun alətdən istifadə məlumatların sürətli və səmərəli toplanması prosesini təmin edəcək.

Bu məqamlara diqqət yetirməklə məlumatların çıxarılması həyata keçirilə bilər.


Google-da bir başlıq çəkmək üçün əvvəlcə səhifənin mənbə kodunu araşdırmalıyıq. Bunun üçün PHP və CURL istifadə edərək yenidən nümunə kodu yaza bilərik. Məsələn, başlığı "https://www.google.com" saytından çıxarmaq istədikdə aşağıdakı kodu istifadə edə bilərik:

PHP:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
preg_match('/<title>(.*?)<\/title>/', $output, $matches);
echo $matches[1];
?>

Bu kodu işlətdiyimiz zaman o, başlığı "https://www.google.com" ünvanında çap edəcək.

Kodun necə işlədiyini qısaca izah etmək üçün əvvəlcə CURL ilə "https://www.google.com" saytına qoşuluruq və səhifənin mənbə kodunu çəkirik. Daha sonra "preg_match" funksiyası ilə mənbə kodunda başlıq etiketini axtarırıq və bu başlığı ekranda çap edirik.

Bu nümunə kodda diqqət etməli olduğumuz məqamlar bunlardır:

Başlıq etiketi HTML kodunun standart hissəsidir, lakin bəzi vebsaytlarda fərqli struktura malik ola bilər. Buna görə də, başlıq etiketinin düzgün çəkilməsini təmin etmək üçün mənbə kodunun hərtərəfli nəzərdən keçirilməsi lazım ola bilər.

Başlıq etiketi axtarış sistemlərində veb səhifələrin sıralamasına təsir edən mühüm amildir. Buna görə başlıq etiketlərini düzgün əldə etmək veb saytın axtarış sisteminin optimallaşdırılması (SEO) üçün vacibdir.

"preg_match" funksiyası kimi müntəzəm ifadələrdən istifadə məlumatların çıxarılması prosesini daha effektiv və səmərəli edə bilər.

Bu məqamlara diqqət yetirməklə, Google kimi veb saytlardan başlıq etiketlərini çəkə bilərik.


Google-da bütün şəkilləri çəkmək üçün əvvəlcə veb saytın mənbə kodunu əldə etməlisiniz. Daha sonra mənbə kodunda bütün şəkillərin URL-lərini tapa və PHP və CURL istifadə edərək yükləyə bilərsiniz.

Aşağıdakı nümunə kodda biz bütün şəkilləri "https://www.google.com" saytından endirəcəyik:

PHP:
<?


    $link = "https://www.google.com/search?q=gozel&tbm=isch";
    
    // CURL funksiyasını işə salın
    $ch = curl_init();


    // CURL seçimlərini təyin edin
    $options = array(
        CURLOPT_URL => $link,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_USERAGENT => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Mobile Safari/537.36"
    );


    // CURL seçimlərini təyin edin
    curl_setopt_array($ch, $options);


    // Google Şəkillər səhifəsini əldə edin
    $results = curl_exec($ch);


    // CURL funksiyasını söndürün
    curl_close($ch);


    // İdxal edilmiş səhifədən bütün şəkil bağlantılarını tapmaq və çap etmək
    preg_match_all('/https?:\/\/[^"]+\.(?:jpg|jpge|png|gif)/i', $results, $matches);


    $html = "";
    foreach ($matches[0] as $match) {
      
        
            $html .= "<a href='$match'><img width='100' height='100' src='$match'></a>";
        
    }


    echo $html;


?>

Bu kod verilmiş Google Şəkillər axtarış sorğusu əsasında şəkillərin URL-lərini əldə etmək üçün cURL istifadə edərək Google Şəkillər səhifəsini çəkir. Daha sonra alınan səhifədən bütün şəkil bağlantılarını tapmaq üçün müntəzəm ifadədən istifadə edir və hər bir şəkil üçün HTML kodunu yaradır. Bu HTML kodu şəkilləri ekranda göstərir.


Xüsusilə veb proqramlaşdırma və ya məlumatların çıxarılması ilə məşğul olanlar tərəfindən istifadə edilə bilən kod nümunəsidir.

Bununla belə, qeyd etmək.! lazımdır ki, Google Şəkillərindən şəkillərin çıxarılması ilə bağlı hüquqi problemlər ola bilər. Ona görə də bu cür hərəkətlərə başlamazdan əvvəl hüquqi vəziyyəti yoxlamaq vacibdir.
 
3

LOCALHOST

Məhşur istifadəçi
WebMaster
Qoşuldu
3 Sen 2022
Mesajlar
278
Reaksiya hesabı
125
Xallar
43
Məlumat üçün bildirim ki, Curl bir çox saytlarda əlverişli olsada bütün saytlara tətbiq edilə bilmir.
Əgər bir saytın xarici requestlərə accessi yoxdursa cors erroru alacaqsız.
 
2

SoxulcanPRO

Aktiv istifadəçi
WebMaster
Qoşuldu
26 Mar 2023
Mesajlar
82
Reaksiya hesabı
37
Xallar
18
Məlumat üçün bildirim ki, Curl bir çox saytlarda əlverişli olsada bütün saytlara tətbiq edilə bilmir.
Əgər bir saytın xarici requestlərə accessi yoxdursa cors erroru alacaqsız.
DÜZDÜR.... CORS xətası vebsaytın fərqli domendən resurslara daxil olmasına mane olan təhlükəsizlik tədbiridir.

amma CORS aşağdakı üsulada kecmək mümkundur
JSONP (JSON Padding): JSONP veb-səhifədən məlumat əldə etmək üçün alternativ üsuldur.
Reverse Proxy: Bu üsulda proxy server brauzerin birbaşa hədəf serverlə əlaqə saxlamasına mane olan brauzer sorğularını yönləndirə bilər. Bu, CORS siyasətlərini keçə və hədəf serverin birbaşa çıxışı olmayan proqram məlumatlarına giriş əldə edə bilərik.

Bu kod bütün domenlərdən gələn sorğuların qəbul ediləcəyini bildirməklə CORS siyasətlərini yan keçməyə kömək edəcək. bir kod`dur
PHP:
header('Access-Control-Allow-Origin: *');

Şərhinizə görə təşəkkürlər...
 
3

LOCALHOST

Məhşur istifadəçi
WebMaster
Qoşuldu
3 Sen 2022
Mesajlar
278
Reaksiya hesabı
125
Xallar
43
DÜZDÜR.... CORS xətası vebsaytın fərqli domendən resurslara daxil olmasına mane olan təhlükəsizlik tədbiridir.

amma CORS aşağdakı üsulada kecmək mümkundur
JSONP (JSON Padding): JSONP veb-səhifədən məlumat əldə etmək üçün alternativ üsuldur.
Reverse Proxy: Bu üsulda proxy server brauzerin birbaşa hədəf serverlə əlaqə saxlamasına mane olan brauzer sorğularını yönləndirə bilər. Bu, CORS siyasətlərini keçə və hədəf serverin birbaşa çıxışı olmayan proqram məlumatlarına giriş əldə edə bilərik.

Bu kod bütün domenlərdən gələn sorğuların qəbul ediləcəyini bildirməklə CORS siyasətlərini yan keçməyə kömək edəcək. bir kod`dur
PHP:
header('Access-Control-Allow-Origin: *');

Şərhinizə görə təşəkkürlər...
Bəli, JSONP brauzerdə işlədilə bilən javascript kodu olduğu üçün brauzerdən gedən istəkləri sadəcə bypass edə bilər.
Buna görə CORS politiklarını diqqətlə incələmək və quraşdırmaq lazımdır
Buyur xoşdur.
 
2

SoxulcanPRO

Aktiv istifadəçi
WebMaster
Qoşuldu
26 Mar 2023
Mesajlar
82
Reaksiya hesabı
37
Xallar
18
Bəli, JSONP brauzerdə işlədilə bilən javascript kodu olduğu üçün brauzerdən gedən istəkləri sadəcə bypass edə bilər.
Buna görə CORS politiklarını diqqətlə incələmək və quraşdırmaq lazımdır
Buyur xoşdur.
++
 
2

Shukur_23

Tanınmış istifadəçi
Silver istifadeci
Qoşuldu
6 Sen 2022
Mesajlar
143
Reaksiya hesabı
27
Xallar
28
salam, Əllərinizə sağlıq çox gözəl mövzudur, biraz daha dərinə gedib html kodlarını necə parçalamaq olar, o haqdada məlumat paylaşardınız bir zəhmət.
 
2

SoxulcanPRO

Aktiv istifadəçi
WebMaster
Qoşuldu
26 Mar 2023
Mesajlar
82
Reaksiya hesabı
37
Xallar
18
DOM (Sənəd Obyekt Modeli) tez-tez PHP-də HTML kodlarını təhlil etmək və manipulyasiya etmək üçün istifadə olunur. DOM bir HTML strukturu kimi təmsil edir və bu strukturu ilə hərəkət etməklə siz xüsusi elementləri tapa və idarə edə bilərsiniz.

HTML kodunu DOM çevirmək üçün PHP-nin daxili DOM funksiyalarından istifadə edə bilərsiniz. Bunun üçün aşağıdakı addımları izləyə bilərsiniz:

HTML kodunu sətir kimi əldə edin....

PHP:
$html = '<html><head><title>My Webpage</title></head><body><h1>Welcome!</h1><p>Here is some text.</p></body></html>';

DOMDocument sinifinin obyektini yaradın...

PHP:
$dom = new DOMDocument();

loadHTML() funksiyasından istifadə edərək HTML kodunu DOM çevirin..

PHP:
$dom->loadHTML($html);

DOMXPath sinifinin obyektini yaradaraq XPath ifadələrindən istifadə edərək DOM elementləri tapın

PHP:
$xpath = new DOMXPath($dom);

Məsələn, bütün p teqlərini tapmaq üçün aşağıdakı koddan istifadə edə bilərsiniz

PHP:
$paragraphs = $xpath->query('//p');

Bu, DOM ağacındakı bütün p teqlərini ehtiva edən DOMNodeList obyektini qaytarır. Bu DOMNodeList-i foreach döngəsindən istifadə edərək hər bir p teqi ilə manipulyasiya edə bilərsiniz

PHP:
foreach ($paraqraf as $paraqraf) {
     echo $paraqraf->nodeValue;
}

Beləliklə, siz DOM-dan istifadə edərək HTML kodunu təhlil edə və istədiyiniz elementləri tapıb manipulyasiya edə bilərsiniz.

--------------------------------

DOM veb səhifələrin məzmununu, strukturunu və üslublarını proqramlı şəkildə dəyişdirmək üçün istifadə edilən standart veb texnologiyasıdır.

DOM haqqında daha çox öyrənmək istəyirsinizsə, aşağıdakı resurslar faydalı ola bilər....

Mozilla Developer Network (MDN) DOM https://developer.mozilla.org/tr/docs/DOM
W3Schools DOM Təlimatı .. https://www.w3schools.com/js/js_htmldom.asp
DOM Manipulyasiyası üçün JavaScript Bələdçisi....... https://javascript.info/modifying-document
 
2

GrAz

Aktiv istifadəçi
istifadeci
Qoşuldu
23 Sen 2022
Mesajlar
93
Reaksiya hesabı
10
Xallar
8
Aslan bey sağ ol melumat uçun,yararli paylaşimdir...
 
2

Shukur_23

Tanınmış istifadəçi
Silver istifadeci
Qoşuldu
6 Sen 2022
Mesajlar
143
Reaksiya hesabı
27
Xallar
28
sağolun məlumat üçün, milli.az ı necə qrab etmək olar php ilə?
 
Üst