2012-06-08 8 views
0

링크 이름으로 URL을 가져오고 싶습니다.Jsoup url, 링크 이름으로 URL 가져 오기

<a href="download.asp?softid=1&amp;downid=2&id=65367" target="_blank">download</a> 

<a href="www.baidu.com" target="_blank">ad</a> 

그래서 내가 원하는 것은 링크 이름으로 첫 번째 URL을 다운로드하는 것입니다.

제 질문은 링크 이름으로 URL을 얻는 방법입니다.

나는 완벽한 해결책은 모든 요소를 ​​얻고 (a.text(). contains (다운로드)) 사용하는 것임을 알고있다. 그러나 나는 간단한 방법이 있다고 생각한다.

답변

2

글쎄, 가장 좋은 방법이 될 것

덕분에 얻을 수있는 모든 < A>의,하는 HREF를 포함하고 속성하는 HREF를 얻을 수있다. 다음과 같이하십시오.

Document doc = Jsoup.connect("whatever url").get(); 

Elements a = doc.select("a[href]"); 

String href; 

for (Element elem : a) { 
    href = a.attr("href"); 
} 

지금 .. 당신이 원하는 바가지는 당신에게 달려 있습니다. 하지만 당신이 사용해야 할 것 같아요

.contains(""); 
.endsWith(""); 
.startsWith(""); 

오, 아마도 당신은 의사 변수에서 getters를 사용해 볼 수 있습니다.

.getElementsByAttributeValue ("a [href]", "download");

+0

감사합니다. 해결 된 문제는 인코딩 문제입니다. – chandler

2

의사 선택기를 사용하십시오. 예를 들어,

Document doc = Jsoup.connect(url).get(); 
Elements a = doc.select("a[href]:contains(download)"); 

당신이 성취하려는 정확히에 따라 자식 요소 내에서 검색을 피하기 위해 containsOwn를 사용하거나 일치를 사용 할 수 있습니다/당신이 포함 된 요소를 얻을 수있는 정규식을 사용하려는 경우 matchesOwn 텍스트 만 "다운로드"하십시오. 그 정규식은

^download$ 

Selector documentation을 참조하십시오.

+0

고마워요, 나는 [href]을 (를) 시도 했었습니다. 이전에 인코딩 문제가 있음을 발견했습니다. 감사합니다. – chandler

+0

doc.select ("a [href] : contains (download)") 이것이 작동하지 않습니다. – vikramvi