WebHarvy Web Scraper: cào tự động text, image, link, email từ các website

Discussion in 'Chia Sẻ Tool & Bot' started by buiductrong, Oct 31, 2018.

?

Bạn đã sử dụng phần mềm nào tương tự WebHarvy không?

  1. Không, tôi chỉ dùng WebHarvy

    37.5%
  2. Không, tôi còn không biết có những phần mềm này

    37.5%
  3. CÓ, để tôi giới thiệu ở comment bên dưới nhe

    25.0%
  1. vipkhongtin

    vipkhongtin Sơ Nhập Giang Hồ

    wp crawler à bác? hay wp automatic?
     
  2. vipkhongtin

    vipkhongtin Sơ Nhập Giang Hồ

    e đang test thử thấy chậm ghê nhỉ. đặt max 10 thread. lấy 2 trường là tên và thông tin mà gần nửa tiếng mới đc 365 record. còn chưa tính khoảng vài chục em bị trùng. bác nào có soft nào crawl nhanh hơn ko ạ?
     
  3. buiductrong

    buiductrong Khách Qua Đường

    WP Content Crawler
    RSS Autopilot
    nó auto chứ đâu flash speed được bác ơi :D
     
  4. vipkhongtin

    vipkhongtin Sơ Nhập Giang Hồ

    thanks bác,
    ý e là 10 thread ấy.
     
  5. vipkhongtin

    vipkhongtin Sơ Nhập Giang Hồ

    crawl bằng thằng này có hay bị trùng bài ko bác?
    thằng scrapes ngon nhưng mỗi tội nó không lọc đc bài trùng thì phải!
     
  6. vipkhongtin

    vipkhongtin Sơ Nhập Giang Hồ

    bác cho em hỏi thêm là thằng này có tùy biến đc nextpage với previous page dạng ĐẦU 1 2 3 4 5 CUỐI ko bác? có khoảng 10k page ạ, ko biết dạng này thì set kiểu gì bác nhỉ?
     
  7. vipkhongtin

    vipkhongtin Sơ Nhập Giang Hồ

    iem treo máy từ 9h sáng tới 1h11 phút chiều
    upload_2018-12-7_13-11-7.png
     
  8. Dung Le

    Dung Le Sơ Nhập Giang Hồ

    Theo mình biết thì plugin này cho đăng ký theo domain thôi nên không biết bác mua là bản crack rồi hay sao thế ? cho mình xin cái link để mua nhé , nếu là bản mới nhất thì cũng oke.
     
  9. princenuce

    princenuce Sơ Nhập Giang Hồ

    Sao các bạn không viết tool mà cào lại phải dùng mấy thằng này, 1 file php là cào ngập răng :D
     
  10. Trần Trọng Bách

    Trần Trọng Bách Sơ Nhập Giang Hồ

    Nếu 1 file php đó đơn giản và có thể chia sẻ thì bạn chia sẻ với mọi người được không? Mình nghĩ mọi người dùng thằng này vì họ không biết code không viết được tool, hoặc biết code nhưng không rành việc crawl data, ví dụ như mình lúc trước dùng php cũng không biết làm sao để "cào ngập răng" được, mình phải xài thêm vài cái tool kết hợp với php để tạm đủ xài.
     
  11. princenuce

    princenuce Sơ Nhập Giang Hồ

    Nếu chỉ đơn giản là lấy text và image mà victim ko có cơ chế bảo vệ data phức tạp thì chỉ cần php là đủ rồi. bạn đưa cho mình 1 trang mẫu cần lấy text ví dụ báo, site ảnh mình code cho
     
  12. Trần Trọng Bách

    Trần Trọng Bách Sơ Nhập Giang Hồ

    Bạn có thể ví dụ luôn 1 trang phổ biến như vnexpress.net chẳng hạn, còn lại ae tự tùy biến sang các trang tương tự sau. Cám ơn bạn!
     
    Dung Le likes this.
  13. princenuce

    princenuce Sơ Nhập Giang Hồ

    Bởi vì cái này mình chỉ ví dụ về cách crawl nên nó chỉ crawl data thôi, còn nếu lưu nữa thì sẽ tùy vào từng cms mà lưu cho hợp lý.
    cách dùng: lưu thành crawl.php và chạy thôi
    ps: để đơn giản mình chọn category Góc nhìn, nó có sẵn api page rồi, chỉ còn cái post là phi cấu trúc thôi, các mục khác tương tự
    PHP:
    <?php

    class CrawlVnexpress
    {
        
    /**
         * @var string
         */
        
    private $pageUrl 'https://vnexpress.net/ajax/goc-nhin?category_id=%d&page=%d';
        
    /**
         * @var int
         */
        
    private $category_id 1003450;
        
    /**
         * @var int
         */
        
    private $page 1;

        
    // Neu luu db thi se config them may cai nay
        // const DBHOST = '..';
        // const DBNAME = '..';
        // const DBUSER = '..';
        // const DBPASS = '..';

        
    public function __construct()
        {
            !empty(
    $_GET['page']) && $this->page               = (int) $_GET['page'];
            !empty(
    $_GET['category_id']) && $this->category_id = (int) $_GET['category_id'];

            
    $this->crawl($this->category_id$this->page);
        }

        
    /**
         * @param $category_id
         * @param null           $page
         */
        
    public function crawl($category_id null$page null)
        {
            !
    null === $category_id && $this->category_id $category_id;
            !
    null === $page && $this->page               $page;

            
    $postInfos $this->crawlPage($this->category_id$this->page);
            
    $this->crawlPosts($postInfos);

            
    // load trang thu 2 :D cai nay ko lam no loop lien tuc ma bat trinh duyet load cac trang, tranh timeout php
            
    echo sprintf('<meta http-equiv="refresh" content="2; url=./crawl.php?category_id=%d&page=%d">'$this->category_id, ++$this->page);
        }

        
    /**
         * Ham lay danh sach bai viet cua category theo page
         *
         * @param $category_id
         * @param null           $page
         */
        
    private function crawlPage($category_id null$page null)
        {
            
    $url        sprintf($this->pageUrl$category_id$page);
            
    $jsonString $this->httpRequest($url);
            
    $json       json_decode($jsonString) or die('Json Error');

            if (empty(
    $json->message)) {
                die(
    'Response error');
            }

            return 
    $json->message;
        }

        
    /**
         * @param $postInfos
         */
        
    private function crawlPosts($postInfos)
        {
            
    $posts array_map([$this'crawlPost'], $postInfos);
            
    print_r(json_encode($posts));
        }

        
    /**
         * @param $postInfo
         */
        
    private function crawlPost($postInfo)
        {
            
    $html $this->httpRequest($postInfo->share_url);

            
    preg_match('#<div class="fck_detail">(.+?)</div>#is'$html$matches);

            if (!empty(
    $matches[1])) {
                return [
                    
    'title'   => $postInfo->title_format,
                    
    'content' => strip_tags($matches[1]),
                ];
            } else {
                return 
    'error';
            }
        }

        
    /**
         * Ham thuc hien request lay html, json, ...
         *
         * @param $url
         */
        
    private function httpRequest($url)
        {
            return 
    file_get_contents($url);
        }
    }

    new 
    CrawlVnexpress();
     
    Last edited: Dec 20, 2018
    Trần Trọng Bách, Dung Le and EDM like this.
  14. money

    money Hương Chủ

    Thực ra crawl data là 1 việc đơn giản (trong hầu hết các trường hợp). Gần như crawl trang nào cũng chỉ cần code vài dòng (đến vài trăm dòng) là xong, tùy theo số thông tin cần parse. Cơ bản thì có:
    - lấy html về: 1 dòng
    - cứ 1 thông tin cần parse: 1 đến vài dòng
    - 1 vài dòng lưu thông tin vào database hoặc file text
    Tuy nhiên có nhiều người không biết code nên họ mới cần tool có sẵn.
     
  15. bernie

    bernie Tân Thủ Thôn

    Viết cái gì e kg hiểu gì hết :( . Đúng số phận kg biết code :(
     
  16. Dung Le

    Dung Le Sơ Nhập Giang Hồ

    hàng này ngon nè , cho lên XAMPP thấy nó chạy đì đùng luôn , nhưng chưa biết lưu vào đâu nên hỏi thêm bác:
    Cái khúc này :
    " // const DBHOST = '..';
    // const DBNAME = '..';
    // const DBUSER = '..';
    // const DBPASS = '..';"
    chỉ còn bỏ dấu // rồi thêm thông tin database là xong hả ? vì mình làm không được , còn table thì tạo ra với tên gì, column có đặt tên là gì luôn không ?
     
  17. vipkhongtin

    vipkhongtin Sơ Nhập Giang Hồ

    vâng, là bác Vương nổi tiếng từ ngày xưa ròi :D
    em toàn xem code của bác rồi học mót ạ {big_smile}
     
  18. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Pác Vương là ai ợ
     
  19. princenuce

    princenuce Sơ Nhập Giang Hồ

    ko phải bạn ơi, code này đang demo cách crawl data chứ chưa có phần save vào db nên sửa cũng ko chạy dc đâu, tùy vào platform bạn đang dùng mà viết thêm phần add vào db nữa :D
     
  20. Dung Le

    Dung Le Sơ Nhập Giang Hồ

    Thế nếu mình chạy trên localhost / XAMPP thì có thể nhét vào database bằng đoạn code nào bác? , dữ liệu crawl được gồm có cột title , content thôi hả ? thấy đoạn code bác viết hay quá, chạy đùng đùng nên đang mò mẫm bắt chước theo