2012-02-09 28 views
6

Làm cách nào để Evernote's Web Clipper plugin hoặc Announcify plugin chỉ nhận được phần bài viết/bài đăng/nội dung có liên quan của trang? Dưới đây là một ảnh chụp màn hình từ plugin Evernote:Chỉ nhận phần có liên quan của trang web

enter image description here

Không có vấn đề mà trang web bạn truy cập là hoàn toàn khác nhau từ wises bố trí khác, đây là lúc nào cũng có thể nhận được bài viết bạn/bài/nội dung một phần của trang.

Mỗi trang web có bố trí khác nhau, một số có thanh bên, một số thì không, thẻ khác nhau, cho chính phần/bài báo/nội dung, một số sử dụng <article> hoặc <section> của HTML5 người khác sử dụng <h1> > <p>, một số sử dụng <h2> > <p> và những người khác không sử dụng ở tất cả. Vì vậy, có sự kết hợp khác nhau của các thẻ cũng như bố trí các trang web.

Ai đó có thể đề xuất giải pháp để nhận chính bài viết/đăng/nội dung xin vui lòng thông qua Javascript hoặc PHP?

+0

Đó là thông minh ... – Jivings

+0

Có thể tìm kiếm phần tử 'div' hoặc phần tử khác lớn nhất trên trang? – Jivings

+0

@Jivings: div lớn nhất sẽ chứa toàn bộ trang web, chúng tôi muốn có thể tìm thấy phần tử chứa phần chính/bài viết :) – Dev555

Trả lời

7

Bạn có thể thực hiện phân tích cú pháp DOM đơn giản và tìm kiếm <div> s và <p> s chứa nhiều văn bản hơn (văn bản! Không phải mã HTML!). Tuy nhiên, bất kể phương thức thông minh nào bạn sẽ chọn để xác định vị trí của nội dung, bạn nên bắt đầu từ việc phân tích cú pháp DOM DOM, vì vậy hãy xem DOM phân tích cú pháp thư viện PHP.

Dù sao, bạn có thể bắt đầu từ đây:

http://w-shadow.com/blog/2008/01/25/extracting-the-main-content-from-a-webpage/

Trông khá tốt, và cho lời giải thích kỹ thuật nếu bạn muốn viết một cái gì đó của riêng bạn.

+0

Đây là một giải pháp khủng khiếp. Nhưng có lẽ là tốt nhất. – Jivings

+1

@Jivings Tại sao khủng khiếp? –

+0

Bởi vì phân tích cú pháp DOM làm tôi rùng mình. Nhưng liên kết của bạn có vẻ thú vị. – Jivings

0

Hầu hết các công cụ blog cung cấp cho div đó một id 'nội dung'.

  • Trong javascript, bạn sẽ chỉ làm $ ('# nội dung')
  • Trong php bạn sẽ làm gì DOMDocument :: getElementById ('nội dung').
Các vấn đề liên quan