spidr
1.0.0
SPIDR은 사이트, 다중 도메인, 특정 링크 또는 무한대를 거부 할 수있는 다목적 Ruby Web Spidering Library입니다. SPIDR은 빠르고 사용하기 쉬운 것으로 설계되었습니다.
a .iframe 태그.frame 태그./robots.txt 지원.URL에서 거미를 시작하십시오.
Spidr . start_at ( 'http://tenderlovemaking.com/' ) do | agent |
# ...
end거미 A 호스트 :
Spidr . host ( 'solnic.eu' ) do | agent |
# ...
end스파이더 A 도메인 (및 하위 도메인) :
Spidr . domain ( 'ruby-lang.org' ) do | agent |
# ...
endSpider A 사이트 :
Spidr . site ( 'http://www.rubyflow.com/' ) do | agent |
# ...
end스파이더 다중 호스트 :
Spidr . start_at ( 'http://company.com/' , hosts : [ 'company.com' , /host[ d ]+ . company . com/ ] ) do | agent |
# ...
end특정 링크를 거미하지 마십시오.
Spidr . site ( 'http://company.com/' , ignore_links : [ %{^/blog/} ] ) do | agent |
# ...
end특정 포트에서 링크를 거미하지 마십시오.
Spidr . site ( 'http://company.com/' , ignore_ports : [ 8000 , 8010 , 8080 ] ) do | agent |
# ...
endRobots.txt에서 블랙리스트에 스파이더 링크를하지 마십시오.
Spidr . site ( 'http://company.com/' , robots : true ) do | agent |
# ...
end방문한 URL 인쇄 :
Spidr . site ( 'http://www.rubyinside.com/' ) do | spider |
spider . every_url { | url | puts url }
end사이트의 URL 맵을 작성하십시오.
url_map = Hash . new { | hash , key | hash [ key ] = [ ] }
Spidr . site ( 'http://intranet.com/' ) do | spider |
spider . every_link do | origin , dest |
url_map [ dest ] << origin
end
end요청할 수없는 URL을 인쇄하십시오.
Spidr . site ( 'http://company.com/' ) do | spider |
spider . every_failed_url { | url | puts url }
end링크가 부러진 모든 페이지를 찾습니다.
url_map = Hash . new { | hash , key | hash [ key ] = [ ] }
spider = Spidr . site ( 'http://intranet.com/' ) do | spider |
spider . every_link do | origin , dest |
url_map [ dest ] << origin
end
end
spider . failures . each do | url |
puts "Broken link #{ url } found in:"
url_map [ url ] . each { | page | puts " #{ page } " }
endHTML 및 XML 페이지 검색 :
Spidr . site ( 'http://company.com/' ) do | spider |
spider . every_page do | page |
puts ">>> #{ page . url } "
page . search ( '//meta' ) . each do | meta |
name = ( meta . attributes [ 'name' ] || meta . attributes [ 'http-equiv' ] )
value = meta . attributes [ 'content' ]
puts " #{ name } = #{ value } "
end
end
end모든 페이지에서 제목을 인쇄하십시오.
Spidr . site ( 'https://www.ruby-lang.org/' ) do | spider |
spider . every_html_page do | page |
puts page . title
end
end모든 HTTP 리디렉션을 인쇄하십시오.
Spidr . host ( 'company.com' ) do | spider |
spider . every_redirect_page do | page |
puts " #{ page . url } -> #{ page . headers [ 'Location' ] } "
end
end헤더에 액세스하여 호스트가 사용하는 웹 서버의 종류를 찾으십시오.
servers = Set [ ]
Spidr . host ( 'company.com' ) do | spider |
spider . all_headers do | headers |
servers << headers [ 'server' ]
end
end금지 된 페이지에서 거미를 일시 중지하십시오.
Spidr . host ( 'company.com' ) do | spider |
spider . every_forbidden_page do | page |
spider . pause!
end
end페이지 처리를 건너 뜁니다.
Spidr . host ( 'company.com' ) do | spider |
spider . every_missing_page do | page |
spider . skip_page!
end
end링크 처리를 건너 뜁니다.
Spidr . host ( 'company.com' ) do | spider |
spider . every_url do | url |
if url . path . split ( '/' ) . find { | dir | dir . to_i > 1000 }
spider . skip_link!
end
end
end $ gem install spidr라이센스 정보는 {file : license.txt}를 참조하십시오.