Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use_module(library(url)).
- use_module(library(sgml)).
- use_module(library(xpath)).
- serwery(Adres, X) :-
- load_html(Adres, Term, []),
- once((adresy(Term, X1, []),
- usunhref(X1, X2, []),
- duplikaty(X2, X, []))).
- adresy([], X, Y) :- X = Y.
- adresy([element(a, A, _)|T], X, Y) :-
- append(Y, A, Y1),
- adresy(T, X, Y1).
- adresy([element(_, _, El)|T],X,Y) :-
- adresy(El, Temp, []),
- append(Y, Temp, Y1),
- adresy(T,X,Y1).
- adresy([_|T],X,Y) :-
- adresy(T,X,Y).
- usunhref([], X, Y) :- X = Y.
- usunhref([A|T], X, Y) :-
- [A] = [href=Adres],
- parse_url(Adres, Arr),
- Arr = [_, host(Host), _],
- poprawnyhost(Host),
- append(Y,[Host],Y1),
- usunhref(T,X,Y1).
- usunhref([_|T], X, Y) :-
- usunhref(T,X,Y).
- poprawnyhost(Host) :-
- atom_concat(Y, _, Host),
- atom_concat(_, '.', Y).
- duplikaty([], Out, X) :- Out = X.
- duplikaty([H|In], Out, A) :-
- \+ member(H, A),
- append(A, [H], A1),
- duplikaty(In, Out, A1).
- duplikaty([_|In], Out, A) :-
- duplikaty(In, Out, A).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement