Advertisement
Guest User

jebacprzemka

a guest
May 21st, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. use_module(library(url)).
  2. use_module(library(sgml)).
  3. use_module(library(xpath)).
  4.  
  5. serwery(Adres, X) :-
  6. load_html(Adres, Term, []),
  7. once((adresy(Term, X1, []),
  8. usunhref(X1, X2, []),
  9. duplikaty(X2, X, []))).
  10.  
  11. adresy([], X, Y) :- X = Y.
  12.  
  13. adresy([element(a, A, _)|T], X, Y) :-
  14. append(Y, A, Y1),
  15. adresy(T, X, Y1).
  16.  
  17. adresy([element(_, _, El)|T],X,Y) :-
  18. adresy(El, Temp, []),
  19. append(Y, Temp, Y1),
  20. adresy(T,X,Y1).
  21.  
  22. adresy([_|T],X,Y) :-
  23. adresy(T,X,Y).
  24.  
  25. usunhref([], X, Y) :- X = Y.
  26.  
  27. usunhref([A|T], X, Y) :-
  28. [A] = [href=Adres],
  29. parse_url(Adres, Arr),
  30. Arr = [_, host(Host), _],
  31. poprawnyhost(Host),
  32. append(Y,[Host],Y1),
  33. usunhref(T,X,Y1).
  34.  
  35. usunhref([_|T], X, Y) :-
  36. usunhref(T,X,Y).
  37.  
  38. poprawnyhost(Host) :-
  39. atom_concat(Y, _, Host),
  40. atom_concat(_, '.', Y).
  41.  
  42. duplikaty([], Out, X) :- Out = X.
  43. duplikaty([H|In], Out, A) :-
  44. \+ member(H, A),
  45. append(A, [H], A1),
  46. duplikaty(In, Out, A1).
  47. duplikaty([_|In], Out, A) :-
  48. duplikaty(In, Out, A).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement