Hướng dẫn php web scraping library - thư viện nạo web php

Hướng dẫn php web scraping library - thư viện nạo web php

Đã đăng vào thg 2 28, 2017 11:49 SA 2 phút đọc 2 phút đọc

Hôm nay, mình sẽ giới thiệu với các bạn về việc lấy dữ liệu từ cách website khác bằng việc sử dụng thư viện trong php. Và thư viện mình giới thiệu hôm nay đó là thư viện PHP Simple HTML DOM ParserPHP Simple HTML DOM Parser

PHP Simple HTML DOM Parser là một thư viện của PHP giúp chúng ta có thể lấy các thuộc tính của các thẻ HTML trong 1 website rất dễ dàng. Nó hỗi trợ một số tính năng như là một thư viện của PHP giúp chúng ta có thể lấy các thuộc tính của các thẻ HTML trong 1 website rất dễ dàng. Nó hỗi trợ một số tính năng như

  1. Hôĩ trợ bóc tách dữ liệu theo từng id, class hoặc thể img, a, table, ...
  2. Code ngắn dễ học, dễ viết, dễ nhớ ...
  3. Khá nhẹ nhàng

Cài đặt Để để tải thư viện này bạn có thể lên trang chủ của nó tại địa chỉ http://simplehtmldom.sourceforge.net/ để tải về. Sau khi có thư viện bạn copy file simple_html_dom.php vào dự án của mình và include file đó vào file bạn muốn lấy dữ liệu để sử dụng. Các khác bạn có thể cài đặt nó thông qua composer. Sử dụng Thư viện này rất dễ sử dụng. Mình tìm hiểu qua một số tính năng của thư viện. Đọc nội dùng của một file. Để để tải thư viện này bạn có thể lên trang chủ của nó tại địa chỉ http://simplehtmldom.sourceforge.net/ để tải về. Sau khi có thư viện bạn copy file simple_html_dom.php vào dự án của mình và include file đó vào file bạn muốn lấy dữ liệu để sử dụng. Các khác bạn có thể cài đặt nó thông qua composer. Sử dụng Thư viện này rất dễ sử dụng. Mình tìm hiểu qua một số tính năng của thư viện. Đọc nội dùng của một file.

$html = file_get_html('link của trang web');
echo $html;

Hiển thị tất cả các ảnh

$html = file_get_html('http://www.google.com/');
foreach($html->find('img') as $element) {
       echo '
'; }

Lấy nội dung từ một id cụ thể

$html = file_get_html('http://www.google.com/');
$noidung = $html->find('#ten_id',0);

Truyền số 0 vào đằng sau để lấy ra nội dung đầu tiên trong id của mảng. Các trường hợp lấy theo class, table, p ... cũng lấy tương tự.

Thực hành lấy dữ liệu qua ví dụ cụ thể. Ví dụ 1. Hiển thị toàn bộ nội dung trang web. Ví dụ 1. Hiển thị toàn bộ nội dung trang web.


Ví dụ 2. Lấy ảnh từ trang web trên

find('.block_thumb_slide_show',0)->outertext='';
    $html ->load($html ->save());
    $tieude = $html->find('.title_news',0);
    $noidung = $html->find('#article_content',0);
?>

plaintext?>

innertext?>

Kết luận Vừa rồi mình mới giới thiệu qua cho các bạn về thư viện PHP Simple HTML DOM Parser để lấy dự liệu từ các trang web khác về web của mình. Tham khảo https://code.tutsplus.com/tutorials/html-parsing-and-screen-scraping-with-the-simple-html-dom-library--net-11856 http://simplehtmldom.sourceforge.net/manual.htm Vừa rồi mình mới giới thiệu qua cho các bạn về thư viện PHP Simple HTML DOM Parser để lấy dự liệu từ các trang web khác về web của mình. Tham khảo https://code.tutsplus.com/tutorials/html-parsing-and-screen-scraping-with-the-simple-html-dom-library--net-11856 http://simplehtmldom.sourceforge.net/manual.htm

All rights reserved

HTTPful được cấp phép theo giấy phép MIT.

Hỗ trợ phương thức HTTP có thể đọc (GET, PUT, POST, DELETE, HEAD, PATCH và OPTIONS).

Tiêu đề tùy chỉnh.

Tự động phân tích cú pháp "Thông minh".

Tự động hóa tuần tự tải trọng.

  1. Xác thực cơ bản.
  2. Xác thực chứng chỉ phía máy khách.
  3. Yêu cầu "Mẫu".
  4. Yêu cầu phiên bản PHP 5.3+
  5. 7. Buzz
  6. Sự miêu tả:
  7. Buzz rất hữu ích vì nó là một thư viện khá nhẹ và cho phép bạn đưa ra các yêu cầu HTTP.
  8. Hơn nữa, Buzz được thiết kế đơn giản và nó mang các đặc điểm của một trình duyệt web.

Buzz được cấp phép theo giấy phép MIT.

  • API đơn giản.:
    • Hiệu suất cao.
    • Yêu cầu phiên bản PHP 7.1.
    • 8. Bắn súng
    • Guzzle hữu ích vì nó là một ứng dụng HTTP PHP cho phép bạn gửi các yêu cầu HTTP một cách dễ dàng. Nó cũng dễ dàng tích hợp với các dịch vụ web.
  • Đặc trưng:
    • Tên miền và URL quốc tế.
    • Nó dựa trên OOP.
    • Nó có tốc độ phân tích cú pháp trung bình.
  • Yêu cầu:
    • Goutte phụ thuộc vào PHP 5.5+ và Guzzle 6+.
  • Tài liệu:
    • https://goutte.readthedocs.io/en/latest/
  • Tìm hiểu thêm:https://menubar.io/php-scraping-tutorial-scrape-reddit-with-goutte 
    • https://menubar.io/php-scraping-tutorial-scrape-reddit-with-goutte 

2. DOM HTML đơn giản

  • Sự miêu tả:
    • Được viết bằng PHP5 +, trình phân tích cú pháp HTML DOM rất tốt vì nó cho phép bạn truy cập và sử dụng HTML khá dễ dàng và thoải mái.
    • Với nó, bạn có thể tìm thấy các thẻ trên một trang HTML với các bộ chọn khá giống jQuery.
    • Bạn có thể trích xuất nội dung từ HTML trong một dòng duy nhất.
    • Nó không nhanh như một số thư viện khác.
    • HTML DOM đơn giản được cấp phép theo giấy phép MIT.
  • Đặc trưng:
    • Nó hỗ trợ HTML không hợp lệ.
  • Yêu cầu:
    • Goutte phụ thuộc vào PHP 5.5+ và Guzzle 6+.
  • Tài liệu:
    • http://simplehtmldom.sourceforge.net/manual.htm
  • Tìm hiểu thêm:https://menubar.io/php-scraping-tutorial-scrape-reddit-with-goutte 
    • http://www.prowebscraper.com/blog/web-scraping-using-php/

2. DOM HTML đơn giản

  • Sự miêu tả:
    • Được viết bằng PHP5 +, trình phân tích cú pháp HTML DOM rất tốt vì nó cho phép bạn truy cập và sử dụng HTML khá dễ dàng và thoải mái.
    • Với nó, bạn có thể tìm thấy các thẻ trên một trang HTML với các bộ chọn khá giống jQuery.
    • Bạn có thể trích xuất nội dung từ HTML trong một dòng duy nhất.
    • Nó không nhanh như một số thư viện khác.
    • HTML DOM đơn giản được cấp phép theo giấy phép MIT.
    • Đặc trưng:
  • Đặc trưng:
    • Nó hỗ trợ HTML không hợp lệ.
  • Yêu cầu:
    • Yêu cầu PHP 5+.
    • Tìm hiểu thêm:
  • Tài liệu:
    • https://github.com/hxseven/htmlSQL
  • Tìm hiểu thêm:https://menubar.io/php-scraping-tutorial-scrape-reddit-with-goutte 
    • https://github.com/hxseven/htmlSQL/tree/master/examples

2. DOM HTML đơn giản

  • Sự miêu tả:
    • Được viết bằng PHP5 +, trình phân tích cú pháp HTML DOM rất tốt vì nó cho phép bạn truy cập và sử dụng HTML khá dễ dàng và thoải mái.
    • Với nó, bạn có thể tìm thấy các thẻ trên một trang HTML với các bộ chọn khá giống jQuery.
  • Yêu cầu:
    • Bạn có thể trích xuất nội dung từ HTML trong một dòng duy nhất.
  • Tài liệu:
    • http://php.net/manual/ru/book.curl.php
  • Tìm hiểu thêm:https://menubar.io/php-scraping-tutorial-scrape-reddit-with-goutte 
    • http://scraping.pro/scraping-in-php-with-curl/      

2. DOM HTML đơn giản

  • Sự miêu tả:
    • Được viết bằng PHP5 +, trình phân tích cú pháp HTML DOM rất tốt vì nó cho phép bạn truy cập và sử dụng HTML khá dễ dàng và thoải mái.
    • Với nó, bạn có thể tìm thấy các thẻ trên một trang HTML với các bộ chọn khá giống jQuery.
    • Bạn có thể trích xuất nội dung từ HTML trong một dòng duy nhất.
    • Nó không nhanh như một số thư viện khác.
    • HTML DOM đơn giản được cấp phép theo giấy phép MIT.
  • Đặc trưng:
    • Nó hỗ trợ HTML không hợp lệ.
    • Yêu cầu PHP 5+.
    • Tìm hiểu thêm:
    • 3. htmlSQL
    • Về cơ bản, nó là một thư viện PHP đang thử nghiệm. Nó hữu ích vì nó cho phép bạn truy cập các giá trị HTML với cú pháp giống SQL.
  • Yêu cầu:
    • Điều này có nghĩa là bạn không cần phải viết các hàm phức tạp hoặc các biểu thức chính quy để loại bỏ các giá trị cụ thể.
  • Nếu bạn là người thích SQL, bạn cũng sẽ thích thư viện thử nghiệm này.
    • https://github.com/rmccue/Requests/blob/master/docs/README.md

Nó sẽ hữu ích như thế nào là bạn có thể tận dụng nó cho bất kỳ loại tác vụ linh tinh nào và phân tích cú pháp một trang web khá nhanh chóng.

  • Mặc dù nó đã ngừng nhận các bản cập nhật / hỗ trợ vào năm 2006, htmlSQL vẫn là một thư viện đáng tin cậy để phân tích cú pháp và tìm kiếm.
    • htmlSQL được cấp phép theo giấy phép BSD.
    • Nó cung cấp phân tích cú pháp tương đối nhanh, nhưng nó có một chức năng hạn chế.
    • Bất kỳ hương vị nào của PHP4 + đều nên làm.
  • Đặc trưng:
    • Nó hỗ trợ HTML không hợp lệ.
    • Yêu cầu PHP 5+.
    • Tìm hiểu thêm:
    • 3. htmlSQL
    • Về cơ bản, nó là một thư viện PHP đang thử nghiệm. Nó hữu ích vì nó cho phép bạn truy cập các giá trị HTML với cú pháp giống SQL.
    • Điều này có nghĩa là bạn không cần phải viết các hàm phức tạp hoặc các biểu thức chính quy để loại bỏ các giá trị cụ thể.
    • Nếu bạn là người thích SQL, bạn cũng sẽ thích thư viện thử nghiệm này.
  • Yêu cầu:
    • Nó sẽ hữu ích như thế nào là bạn có thể tận dụng nó cho bất kỳ loại tác vụ linh tinh nào và phân tích cú pháp một trang web khá nhanh chóng.
  • Tài liệu:
    • http://phphttpclient.com/docs/

Mặc dù nó đã ngừng nhận các bản cập nhật / hỗ trợ vào năm 2006, htmlSQL vẫn là một thư viện đáng tin cậy để phân tích cú pháp và tìm kiếm.

  • Sự miêu tả:
    • htmlSQL được cấp phép theo giấy phép BSD.
    • Nó cung cấp phân tích cú pháp tương đối nhanh, nhưng nó có một chức năng hạn chế.
    • Bất kỳ hương vị nào của PHP4 + đều nên làm.
  • Đặc trưng:
    • Nó hỗ trợ HTML không hợp lệ.
    • Yêu cầu PHP 5+.
  • Yêu cầu:
    • Tìm hiểu thêm:
  • Tài liệu:
    • https://github.com/kriswallsmith/Buzz/blob/master/doc/index.md
  • Tìm hiểu thêm:https://menubar.io/php-scraping-tutorial-scrape-reddit-with-goutte 
    • https://github.com/kriswallsmith/Buzz/tree/master/examples

2. DOM HTML đơn giản

  • Sự miêu tả:
    • Sự miêu tả:
  • Đặc trưng:
    • Nó hỗ trợ HTML không hợp lệ.
    • Nó có thể gửi cả yêu cầu đồng bộ và không đồng bộ với sự trợ giúp của cùng một giao diện.
    • Nó sử dụng giao diện PSR-7 cho các yêu cầu, phản hồi và luồng. Điều này cho phép bạn sử dụng các thư viện tương thích PSR-7 khác với Guzzle.
    • Nó có thể loại bỏ sự vận chuyển HTTP bên dưới, cho phép bạn viết môi trường và vận chuyển mã bất khả tri; tức là, không có sự phụ thuộc cứng vào cURL, các luồng PHP, các ổ cắm hoặc các vòng lặp sự kiện không chặn.
    • Hệ thống phần mềm trung gian cho phép bạn tăng cường và soạn thảo hành vi của khách hàng.
  • Yêu cầu:
    • Yêu cầu phiên bản PHP 5.3.3+.
  • Tài liệu:
    • http://docs.guzzlephp.org/en/stable/
  • Tìm hiểu thêm:
    • https://lamp-dev.com/scraping-products-from-walmart-with-php-guzzle-crawler-and-doctrine/958 

Phần kết luận

Như bạn có thể thấy, có công cụ cạo trang web cho bạn sử dụng và nó sẽ phụ thuộc vào nhu cầu cạo trang web của bạn như loại công cụ nào sẽ phù hợp với bạn.

Tuy nhiên, hiểu biết cơ bản về các thư viện PHP này có thể giúp bạn điều hướng qua mê cung của nhiều thư viện tồn tại và tìm được thứ gì đó hữu ích.

Tôi hy vọng rằng bạn thích đọc bài đăng này. Hãy chia sẻ phản hồi và nhận xét của bạn!

8 hữu ích 0 bình luận 145k xem chia sẻ 0 bình luận 145k xem chia sẻ