Crawler content website bởi DOM JS Library giống DomCrawler của Symfony


  • Angel

    Chào các anh chị,
    Cho em hỏi ngu 1 cái ạ. Em đang code 1 website crawler dữ liệu của website bất kỳ về để lưu vào CSDL. Em đã dùng file_get_content của PHP để get được content của website đó về rồi và trả về JS qua AJAX.
    Đến phần phân tích DOM của content website, em thấy có thư viện DomCrawler của Symfony khá là hay nhưng em thấy nếu getDOM trên server thì việc server chịu tải khá là lớn, vậy nếu khi ở brower đã có content của web đó rồi thì mình get trực tiếp ở brower bằng JS thì chắc sẽ tiện mà nhanh hơn nhiều.

    Vậy không biết các bro ở đây hay dùng thư viện nào của JS để getDOM ạ, hoặc suggest cho em 1 giải pháp với ạ. Em biết ơn các bro nhiều.



  • Jquery, jsoup
    hoặc chỉ cần $('#....') thôi bạn nhé


  • Angel

    @hidemanvn
    jsoup là thư viện JAVA mà bro nhỉ
    Còn JQuery liệu có phân tích DOM từ content được không ạ? Hay là phân tích DOM trong brower ạ, như bro nói thì hình như là từ brower thì đúng hơn.

    Em ví dụ em có trang web A. khi em dùng hàm file_get_content thì lấy về được content như sau
    var content ='<html>
    <head>
    <title>Demo web</title>
    <head>
    <body>
    <ul>
    <li class="item">
    <div class="title">Title 1</div>
    <div class="thumb"><img src="https://abc.com/img/1.jpg" /></div>
    <div class="des">Des 1.</div>
    </li>

    <li class="item">
    <div class="title">Title 2</div>
    <div class="thumb"><img src="https://abc.com/img/2.jpg" /></div>
    <div class="des">Des 2.</div>
    </li>
    <li class="item">
    <div class="title">Title 3</div>
    <div class="thumb"><img src="https://abc.com/img/3.jpg" /></div>
    <div class="des">Des 3</div>
    </li>
    </body>';

    Giờ em muốn từ content này để lấy ra mãng gồm title, thumb và des như sau
    var array = [
    {
    'title': 'Title 1',
    'thumb' : 'https://abc.com/img/1.jpg',
    'des': 'Des 1'
    },
    {
    'title': 'Title 2',
    'thumb' : 'https://abc.com/img/2.jpg',
    'des': 'Des 2'
    },
    {
    'title': 'Title 3',
    'thumb' : 'https://abc.com/img/3.jpg',
    'des': 'Des 3'
    },
    ];

    Không biết thư viện nào của JS có thể giúp mình làm việc đó không các bro?
    Cảm ơn các bro nhiều ạ



  • có 2 thư viện mình hay dùng
    cherrio
    jsdom



  • Tìm hiểu về Angular 2 và khái niệm single page application , API


Log in to reply