2012-02-09 13 views
6

W jaki sposób Evernote's Web Clipper plugin lub Announcify plugin otrzymują tylko odpowiednią część artykułu/posta/treści strony? Oto zrzut ekranu z wtyczki Evernote:Pobierz tylko odpowiednią część witryny internetowej

enter image description here

Bez względu na to, która strona odwiedzić która jest zupełnie inna od innych WISE układ, są zawsze w stanie dostać się artykułu/post/zawartości części strony.

Każda strona ma różne układy, niektóre mają pasek boczny, niektóre nie, różne znaczniki, do głównej części/article/treści, niektóre użycie <article> lub <section> HTML5 inni używają <h1> > <p> niektóre użycie <h2> > <p> a inni nie używać w ogóle. Istnieją różne kombinacje tagów, a także układy stron internetowych.

Czy ktoś może zaproponować rozwiązanie, aby uzyskać główny artykuł artykułu/post/treści proszę poprzez JavaScript lub PHP?

+0

To sprytnie ... – Jivings

+0

Może szuka największego "div" lub innego elementu na stronie? – Jivings

+0

@Jivings: Największy div będzie zawierał całą stronę, chcemy być w stanie znaleźć element, który zawiera część główną/artykuł :) – Dev555

Odpowiedz

7

Można zrobić prosty DOM parsowania i poszukiwanie <div> s oraz <p> s zawierających więcej tekstu (tekst! Nie kodu HTML!). Jednak niezależnie od inteligentnej metody, którą wybierzesz, aby określić, gdzie jest zawartość, powinieneś zacząć od DOM parsowania, więc spójrzmy na DOM parsujące biblioteki PHP.

W każdym razie, można zacząć od tego:

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

wygląda całkiem dobrze i daje wyjaśnień technicznych, jeśli chcesz napisać coś własnego.

+0

To jest okropne rozwiązanie. Ale prawdopodobnie najlepszy. – Jivings

+1

@Jivings Dlaczego okropne? –

+0

Ponieważ parsowanie DOM powoduje drżenie. Ale twój link wydaje się interesujący. – Jivings

0

Większość silników blogów nadaje temu div identyfikator "treści".

  • W javascript byłoby po prostu zrobić $ ('#') zawartość
  • w PHP byś zrobił DOMDocument :: getElementById ('content').
Powiązane problemy