2010-05-26 4 views
0

У меня есть HTML-документ, находящийся на http://somedomain.com/somedir/example.htmlNokogiri найти только входящие и исходящие ссылки

Документ содержит четыре ссылки:

http://otherdomain.com/other.html

http://somedomain.com/other.html

/only.html

тест .html

Как я могу получить полные URL-адреса для ссылок в текущем домене?

Я имею в виду, я должен получить:

http://somedomain.com/other.html

http://somedomain.com/only.html

http://somedomain.com/somedir/test.html

Первое звено следует игнорировать, поскольку он does'nt соответствует мой домен

ответ

0

использовать обычный выражение для извлечения ссылок из href = "URL" , затем concate Нейт с доменом, если он не начинается с "HTTP"

Вот пример Python:

import re 
import urlparse 

domain = ... 
html = ... 
links = re.findall('href=[\'"](.*?)[\'"]', html) 
links = [urlparse.urljoin(domain, link) for link in links if link] 
1

Что-то вроде

doc.search("a").map do |a| 
    url = a.attribute("href") 
    #this part could be a lot more robust, but you get the idea... 
    full_url = url.match("^http://") ? url : "http://somedomain.com/#{url}" 
end.select{|url| url.match("^http://somedomain.com")} 
Смежные вопросы