2011-09-13 7 views
2

http 요청을 수행하는 데 가장 기본적인 Java 코드가 있는데 제대로 작동합니다. 나는 자료를 요구하고 html의 톤은 돌아온다. 해당 페이지에서 모든 URL을 검색하여 나열하고 싶습니다. 이것은 그러나 작동java의 웹 페이지에서 URL을 가져 오는 중

int b = line.indexOf("http://",lastE); 
int e = line.indexOf("\"", b); 

당신이 끔찍한 상상 만의 경우 80 %에서 작동 수 : 간단한 첫 번째 테스트를 위해 나는 다음과 같이했다. 내가 나 자신과 함께 할 수있는 유일한 대안은 느리고 바보 같았다. 그래서 제 질문은 꽤 모자의 일종이다 내가

List<Url> 

String html 

에서 가야합니까?

+0

같은 질문이 있습니다. http://stackoverflow.com/questions/2717760/finding-links-on-a-webpage-with-java – palacsint

답변

1

 
Pattern p = Pattern.compile("http://[\w^\"]++"); 
Matcher m = p.matcher(yourFetchedHtmlString); 
while (m.find()) { 
    nextUrl=m.group();//Do whatever you want with it 
} 

또한 난 그냥 테스트없이 기록 된 것처럼, 정규 표현식을 조정할 수 있습니다. 이것은 URL을 가져 오는 매우 빠른 방법이어야합니다.

+0

그러면 잘못된 이스케이프 시퀀스 예외가 발생합니다. – TFennis

1

나는 HTML Parser과 같은 라이브러리를 사용하여 HTML 문자열을 구문 분석하고 모든 URL 태그를 추출합니다.

+0

체크 아웃 할 것입니다. – TFennis

0

당신의 생각은 훌륭합니다. 당신은 일부 부품을 놓치고 있습니다.

Yous는 URL에 대해 몇 가지 알려진 확장 프로그램을 추가해야합니다. .pl.asp

.aspx.php.htm.cgi.js.html처럼 그리고 경우 이미지처럼 너무 다음 .jpg.png

.gif 내가 최고의 단지 확인 더 많은 확장을 추가 할 필요가 당신이 그 일을 생각 추가 할 수 있습니다.

전체 메소드 코드를 게시 할 수 있다면 기꺼이 도와 드리겠습니다.

+0

문제는 많은 링크가 index.php와 같은 확장 기능으로 끝나야합니까? page = here – TFennis

관련 문제