Lấy dữ liệu từ website khác bằng php

  -  

Trong bài bác này bọn họ cùng tham khảo thêm một cách nữa để lấy dữ liệu trường đoản cú trang khác thông qua việc thực hiện thư viện. Có một số trong những thư viện cung cấp việc này cơ mà trong bài viết này bản thân sẽ giới thiệu đến các bạn sử dụng tủ sách PHP Simple HTML DOM Parser. Trước tiên mình xin tản mạn một chút ít cái duyên của chính bản thân mình với tủ sách này đã.

*


*

Cũng tầm tháng này thời gian trước lúc kia mình new ra trường và gồm làm một dự án công trình liên quan mang lại việc bóc tách tài liệu từ trang khác. Thời gian đấy mình chưa biết CURL là gì. Mình có hỏi anh sếp mình về vấn đề làm gì để đưa dữ liệu. Vì chưng anh ấy cũng mới làm hoàn thành dự án đem dữ liệu tự động hóa từ web khác. Cố là được chỉ đến là dùng thư viện dom. Tôi đã lên google tra cứu kiếm coi dom là gì phương pháp dùng dom ra sao và đã nghe biết thư viện này. Cùng đã vận dụng nó vào dự án của chính mình và tôi cũng đã dứt nó. Phiên bản thân mình là 1 trong những người phổ biến TÌNH nên các cái gi mình đã ấn tượng và thực hiện lần đầu thì mình siêu ngại đổi bắt buộc giờ một dự án công trình mà tương quan đến lấy dữ liệu mình vẫn thông thường TÌNH với các bạn dom này dù có thể có rất nhiều thư viện hay hơn. (Từ tầm thường TÌNH bản thân chỉ dùng làm PR bản thân thôi chúng ta cũng có thể bỏ qua nó nhé

*
)

Tản mạn vậy thôi chứ mình không khuyến khích các bạn dùng thư viện này với quên đi thằng bạn CURL các bạn vẫn nên tìm hiểu về CURL, còn việc dùng thư viện hay là không là do bạn quyết định. Vấn đề dùng tủ sách sẽ khiến cho đoạn code của người tiêu dùng ngắn đi các nhưng hoàn toàn có thể sẽ làm bạn mất đi dòng căn bản.

OK trình bày thế đầy đủ rồi chúng ta bước đầu tìm đọc thôi.

Bạn đang xem: Lấy dữ liệu từ website khác bằng php

Bài viết này được đăng tại

1.Giới thiệu về PHP Simple HTML DOM Parser.


Hiểu đơn giản dễ dàng PHP Simple HTML DOM Parser là 1 trong những thư viện có chức năng đó là trích xuất ngôn từ HTML xuất phát điểm từ 1 trang nào kia hoặc một đoạn HTML vì do bạn tự túc cấp, nó cung ứng một số tác dụng như:

Hỗ trợ tách bóc tách dữ liệu theo từng id, class, hoặc thẻ img, a, table, p...

Code ngắn, dễ học, dễ dàng viết, dễ dàng nhớ.

Khá dịu nhưng cũng khá hữu dụng.

Và còn gì khác nữa thì có lẽ rằng sau khi bạn sử dụng thì tự rút ra chủ ý chứ mình bị hạn hán lời buộc phải liệt kê được đà thôi. Nói tầm thường để nhưng viết pr cho bạn là mình hoàn toàn có thể viết cực tốt nhưng viết truyền bá về vụ việc khác mình không làm được yêu cầu mình xin kết thúc phần một trên đây.

2. Hướng dẫn mua về và áp dụng PHP Simple HTML DOM Parser.

Để cài về tủ sách này bạn cũng có thể nên home của nó tại showroom sau http://simplehtmldom.sourceforge.net để down về. Ở đây mình đã đính kèm luôn luôn file kèm theo lên blog này. Bạn có thể tải về trên đây.

Sau khi đã bao gồm thư viện bạn copy file simple_html_dom.php vào dự án của mình và include nó vào file bạn muốn lấy dữ liệu để rất có thể sử dụng.

Tiếp theo chúng ta cùng điểm qua một số trong những ví dụ về bài toán lấy dự liệu với tủ sách này nhé.

Để đọc ngôn từ một file ta sử dụng như sau.


Bây giờ chúng ta cũng có thể chạy thử giúp thấy kết quả. Rất dễ dàng phải ko nào chỉ việc một dòng code là bạn đã có thể echo ra cục bộ nội dung HTML của một trang web rồi. Và họ cùng tìm hiểu tiếp về cách tách tách dữ liệu bằng thư viện này rồi nhé nhé.

Hiển thị toàn bộ các hình ảnh từ trang buộc phải lấy quý phái web mình.


$html = file_get_html("https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpghttp://www.google.com/"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg);foreach($html->find("https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpgimg"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg) as $element) echo "https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg

*
src."https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg />"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg;

Lưu ý vươn lên là $html bạn chỉ việc khai báo một lượt trong tệp tin nhé, với ở các ví dụ sau mình sẽ không gọi lại nó nữa cơ mà mặc định là chúng ta đã khai báo nó rồi.

Hiển thị toàn bộ các links trong bài bác viết.

Xem thêm: Tìm Hiểu Lịch Sử Hình Thành Máy Tính, Lịch Sử Hình Thành Máy Tính


foreach($html->find("https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpga"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg) as $element) echo $element->href . "https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg;

Lấy nội dung xuất phát điểm từ 1 id núm thể.


$noidung = $html->find("https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg#ten_id"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg,0);

Ở đây chúng ta tôi bao gồm chèn số 0 vị trong html find vẫn trả về dữ liệu dạng mảng nếu khách hàng không truyền 0 vào thì các bạn sẽ cần mang lại nó vào vòng lặp nhằm hiển thị văn bản ra. Nhỏ tôi truyền số 0 vào đằng sau để chỉ lấy văn bản trong id đầu tiên.

Đối với class họ cũng làm tựa như như sau, đưa sử trong file đề nghị lấy gồm 3 class tên là content. Và tôi mong mỏi lấy nội dung từ class nội dung thứ hai thị bạn làm như sau


Làm tương tự so với các thẻ khác ví như table, p... Bạn chú ý nhé còn nếu như không truyền số vào đằng sau kết quả trả về là mảng các bạn sẽ cần foreach để show dữ liệu ra, còn nếu truyền số vào thì tác dụng trả về là 1 chuỗi các bạn echo thông thường trong quy trình sử dụng tùy theo mục đích mà bạn áp dụng cho phù hợp.

Tiếp theo họ cùng mày mò cách lấy phần tử trong một phần tử. Ví dụ rõ ràng như sau trong văn bản file yêu cầu lần bao gồm một id thương hiệu là properties. Trong properties có một đoạn text cùng một list danh sách thuộc tính phía trong thẻ li. Hiện thời bạn cần lôi ra chuỗi li đấy để mang vào tài liệu hoặc xuất ra website thì có tác dụng như sau.


$thuoctinh = $html->find("https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg#properties"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg,0)->find("https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpgli"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg);foreach ($thuoctinh as $e) echo $e->plaintext;

Mục đích của lấy ví dụ này để bạn hiểu về cách dùng find lồng tự đó có thể áp dụng vào những ví dụ cố thể.

Lưu ý: trong thư viện này có cung cấp ta ba cách đọc văn bản như sau

plaintext: Lấy câu chữ (text) tự trang webinnertext: Chỉ lấy nội dung phía bên trong thẻ..outertext: lấy cả thẻ với nội dung bên trong.

Tiếp theo bọn họ cùng khám phá về cách thay đổi nội dung của một trang trước lúc xuất dữ liệu ra. Mang sử chúng ta có một trang trong các số đó có 3 table với đa số nội dung khác nhau, bạn có nhu cầu xóa table thứ nhất đi do bao gồm chứa tin tức không quan trọng thì có tác dụng như sau


Bạn nhớ nhé khi cần xóa một phần từ nào đó thi gán outertext = "https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg; như ở trên là đươc. Các bạn làm tựa như với những class cùng id. Giờ trường hợp đưa ra là chúng ta xóa một đoạn text nằm trong một thẻ phường nhưng oái oăm thế thẻ p này không mang tên class hoặc id nhưng mà chỉ bao gồm style như sau . Đây là mình đem từ lấy một ví dụ thực tế của chính bản thân mình khi làm dự án trước tiên của mình.Lúc này ta bắt buộc làm như sau để nhiều loại text,


Như thế nếu bạn echo $html thì ngôn từ bạn không được sửa đổi đâu bạn phải thêm một bước này nữa trước lúc xuất dữ liêụ ra.


Mục đích của cái trên là để giữ giàng nội dung $html đã làm được sửa đổi.

Trường hợp sau cùng bạn bắt buộc lấy ngôn từ ở những trang mình đã chạm mặt trường hòa hợp phải phối kết hợp mấy trang new lấy không còn thông tin. Một trang có trách nhiệm show nội dung chi tiết sản phẩm, một trang show giá cùng một trang để lấy màu sắc của sản phẩm. Đối cùng với trường thích hợp này bạn làm như sau.Sau khi chúng ta đã rước được nội dung của trang thứ nhất và gán nó vào biến rõ ràng rồi thì bạn hủy ngôn từ trong $html đi và tiếp tục get quý phái trang trang bị hai. Cách thức hủy như tiếp sau đây là cách thức tôi test và thấy nó chạy cũng không chắc là nó tối ưu nhưng lại mà cần sử dụng được.


3. Thực hành lấy dữ liệu qua ví dụ nắm thể.

Nhìn code nhiều cùng với nối viết văn tương đối loằng ngoằng của mình chắc rằng sẽ khiến bạn chống mặt và không muốn theo dõi tiếp. Vậy thì để biến đổi không khí họ cùng bắt tay vào lấy dữ liệu xuất phát điểm từ một trang ví dụ nhé.

Ở đây tội chọn lấy nội dung nội dung bài viết từ liên kết sau:


http://thethao.vnexpress.net/photo/hau-truong/hom-nay-hoang-xuan-vinh-ve-nuoc-nguyen-tien-minh-quyet-dau-lin-dan-3452035.html

Ví dụ 2: Như bạn đã thấy ngơi nghỉ trên khi chúng ta chạy nó sẽ hiển thị nội dung tổng thể nội dung từ website vnexpress ra rõ ràng là trên thực tiễn sẽ không có trường phù hợp nào như thế. Bây chừ chúng ta cùng bắt tay vào lấy một ví dụ 2 lấy tiêu để đổ vào thẻ h1, cùng nội dung đổ vào id content và lúc này tôi code vidu2.php như sau


Ví dụ 3: Tôi thấy bức hình ảnh đầu tiên anh ấy mỉm cười to quá tôi ao ước xóa bỏ ảnh này, tôi chất vấn thấy hình ảnh này thuôc class block_thumb_slide_show bây giờ code vidu3.php của tớ như sau


find("https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg.block_thumb_slide_show"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg,0)->outertext="https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg;$html ->load($html ->save());$tieude = $html->find("https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg.title_news"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg,0);$noidung = $html->find("https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg#article_content"https://hostingvietnam.vn/lay-du-lieu-tu-website-khac-bang-php/imager_4_14797_700.jpg,0);?>plaintext?>

Bạn chạy lần lượt ba ví dụ để xem hiệu quả nhé.

4. Kết luận

Ở trên tôi vừa reviews đến các bạn cách lấy tài liệu với tủ sách HTML DOM Parser hy vọng qua bài xích này bạn có thêm hầu hết lựa chọn cho bạn khi lấy dữ liệu từ website khác. đầy đủ ví dụ tôi nêu nghỉ ngơi trên là đầy đủ ví dụ đơn giản còn trong quá trình làm dự án thực tế sẽ sở hữu những ngôi trường hợp tinh vi hơn không hề ít nên chúng ta cứ chịu khó quay tay những vào thì vận may sẽ đến với những bạn.Trong nội dung bài viết có thể có tương đối nhiều chỗ chưa chính xác mang quan liêu điểm cá nhân tác giả thì cũng mong muốn nhận được sự góp ý tự phía những bạn.

Xem thêm: Hướng Dẫn Cách Xóa & Khôi Phục Tài Khoản Google Đã Xóa, Tài Khoản Đã Bị Xóa

Chúc các bạn học tốt.

Bài viết được đóng góp bởi chúng ta ChiPheo


Danh sách file tải về

thương hiệu file sở hữu về Pass bung file
php html simple dom hostingvietnam.vn hoặc gameportable.net
test html simple dom hostingvietnam.vn hoặc gameportable.net