2011-05-16 12 views
8

Temel URL'yi java kullanarak almaya çalışıyorum. Başlığı almak için kodumda jtidy ayrıştırıcı kullandım. Başlığı jtidy kullanarak düzgün şekilde alıyorum, ancak verilen URL'den temel URL almıyorum. İlk dize itibarenjava kullanarak belirli url'den temel url nasıl getirilir

String s1 = "http://staff.unak.is/andy/GameProgramming0910/new_page_2.htm"; 
String s2 = "http://www.complex.com/pop-culture/2011/04/10-hottest-women-in-fast-and-furious-movies"; 

Bir temel URL ile "http://staff.unak.is/andy/GameProgramming0910/" getirmek istiyoruz ve ikinci dizesinden, bir temel URL ile "http://www.complex.com/" istiyorum:

Ben girdi olarak bazı URL var.

Ben kodu kullanıyorum: Ben titletext alıyorum

URL url = new URL(s1); 
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
InputStream in = conn.getInputStream(); 
Document doc = new Tidy().parseDOM(in, null); 
String titleText = doc.getElementsByTagName("title").item(0).getFirstChild() 
.getNodeValue(); 

, ama bana verilen URL'ye yukarıdan taban URL almak için nasıl bildirebilirsiniz lütfen?

+7

kuralları söylerdim Ne ', http: // www.complex.com/'temel url değil, http: // www.complex.com/pop-culture/2011/04 /' değil mi? –

cevap

18

deneyin java.net.URL sınıfını kullanmak, bu size yardımcı olacaktır: İkinci durumda

daha kolay olduğuna göre, yeni URL (s2) de kullanabilir .getHost();

İlk durumda, ana makineyi alabilir ve getFile() yöntemini kullanabilir ve son eğik çizgiden ("/") sonra dizeyi kaldırabilirsiniz. gibi bir şey: (kod test edilmedi)

URL url = new URL(s1); 
String path = url.getFile().substring(0, url.getFile().lastIndexOf('/')); 
String base = url.getProtocol() + "://" + url.getHost() + path; 
+0

Teşekkürler Pih, Bana yardımcı oldu. – DJ31

+1

Oy verdim, ancak üçüncü ifadenin bana olması gerektiği anlaşılıyor: Dize tabanı = url.getProtocol() + ": //" + url.getHost() + yol; –

+0

Ben *** URL getProtocol() ": //" döndürür ***, ama ben test :( – Pih

0

İlgili URL'leri çözmek için java.net.URL sınıfını kullanırsınız. Ikinci durumda

new URL(new URL(s1), ".").toString() 

: kök yoluna ayarı: yolundan dosya adını kaldırarak: İlk durumda İçin

new URL(new URL(s2), "/").toString() 
İlgili konular