문제

웹페이지를 가져와 페이지에서 주소 정보를 추출해야 합니다.일부는 다른 것보다 쉽습니다.이 작업을 수행하는 데 도움이 될 Firefox 플러그인, Windows 앱 또는 VB.NET 코드를 찾고 있습니다.

이상적으로는 URL을 입력하면 페이지를 스크랩하고 그리드에 넣을 수 있는 데이터 세트를 반환하는 웹 페이지를 관리자(ASP.NET/VB.NET)에 갖고 싶습니다.

도움이 되었습니까?

해결책

페이지 형식을 알고 있다면(예를 들어, 모두 ashnha.com 페이지와 같은 경우) 다음과 같은 작업을 수행하는 VB.NET 코드를 작성하는 것이 매우 쉽습니다.

  1. 만들기 System.Net.WebRequest 응답을 문자열로 읽습니다.
  2. 그런 다음System.Text.RegularExpressions.Regex그리고 방금 검색 한 문자열 사이의 성냥 모음을 반복하십시오.각 경기마다 데이터 가능에 새 행을 만듭니다.

어려운 부분은 정규식을 작성하는 것입니다. 이는 일종의 흑마술입니다.보다 regexlib.com 정규 표현식에 관한 수많은 도구, 서적 등이 있습니다.

HTML 형식이 정규식에 대해 충분히 잘 정의되어 있지 않은 경우 주소가 어떤 비트인지 식별하기 위해 어느 정도 사용자 개입에 의존해야 할 것입니다.

다른 팁

어떤 유형의 주소 정보를 참조하고 있습니까?

몇 가지 FireFox 플러그인이 있습니다 운영자 & 꼬리 웹페이지에서 마이크로포맷을 추출하고 볼 수 있는 기능입니다.

Aza Raskin은 선택한 텍스트가 자신의 주소인지 인식하는 방법에 대해 이야기했습니다. Firefox 제안:더 나은 새 탭 화면.아직 코드는 없지만 나중에 Firefox에 이 작업을 수행하는 코드가 있을 수 있으므로 언급하겠습니다.

또는 유비쿼터스의 지도 명령, 하지만 주소는 직접 선택해야 합니다.

VB.NET의 일반적인 HTML 화면 스크래핑에 대해서는 다음을 확인하세요. HTML 민첩성 팩.Regex를 시도하는 것보다 훨씬 쉽습니다(이미 Regex 닌자가 아닌 이상!).

답변에서 언급한 페이지는 주소가 일관된 형식이므로 자동화하기 쉽습니다.

그러나 사용자가 어떤 페이지든 가리킬 수 있도록 하는 것은 훨씬 더 어려운 작업입니다.데이터는 어떤 형식이든 될 수 있습니다.모든 텍스트를 덤프하고, 텍스트가 어떻게 나누어져 있는지 추측하고, 국가 및 주 이름, 전화번호 등과 같은 비트를 인식하고 사용자가 누락된 섹션을 완료할 수 있는 인터페이스로 결과를 표시할 수 있습니다. 구분하고 놓친 부분이나 원하지 않는 부분을 식별합니다.

하지만 간단하지는 않습니다. 단순히 잘라내어 검증된 양식 필드에 붙여넣는 것보다 큰 이점을 제공하는 인터페이스를 만드는 것은 상당한 성과가 될 것이라고 생각합니다. 어떻게 진행하시는지 알고 싶습니다!

편집하다:당신이 하고 싶은 일을 꽤 많이 다룰 수 있는 다른 질문을 발견했습니다.문자열에서 사용 가능한 거리 주소, 도시, 주, 우편번호를 구문 분석합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top