HTMLAgilityPack을 사용하여 HTML 데이터를 추출하는 방법

c# html-agility-pack web-crawler

문제

웹 크롤러를 작성하는 방법을 배우고 시작하기에 좋은 예제를 찾았지만 처음부터이 코딩 방법과 관련하여 몇 가지 질문이 있습니다.

예를 들어 검색 결과는 여기에서 찾을 수 있습니다 : 검색 결과

결과에 대한 HTML 소스를 보면 다음과 같은 것을 볼 수 있습니다.

<HR><CENTER><H3>License Information *</H3></CENTER><HR>                                                                       
<P>                                                                                                                           
       <CENTER> 06/03/2014 </CENTER> <BR>                                                                                     
<B>Name : </B> WILLIAMS AJAYA L                     <BR>                                                                      
<B>Address : </B> NEW YORK            NY                                          <BR>                                        
<B>Profession : </B> ATHLETIC TRAINER                          <BR>                                                           
<B>License No: </B> 001475 <BR>                                                                                               
<B>Date of Licensure : </B> 01/12/07      <BR>                                                                                
                                                                                                                                <B>Additional Qualification : </B>     &nbsp; Not applicable in this profession                       <BR>                    
<B> <A href="http://www.op.nysed.gov/help.htm#status"> Status :</A></B> REGISTERED                                        <BR>
<B>Registered through last day of : </B> 08/15      <BR>

HTMLAgilityPack을 사용하여 사이트의 데이터를 스크랩하는 방법은 무엇입니까?

아래에 나와있는 예제를 구현하려고했지만 페이지를 크롤링하기 위해 편집 할 위치를 모르겠습니다.

<HR><CENTER><H3>License Information *</H3></CENTER><HR>                                                                       
<P>                                                                                                                           
       <CENTER> 06/03/2014 </CENTER> <BR>                                                                                     
<B>Name : </B> WILLIAMS AJAYA L                     <BR>                                                                      
<B>Address : </B> NEW YORK            NY                                          <BR>                                        
<B>Profession : </B> ATHLETIC TRAINER                          <BR>                                                           
<B>License No: </B> 001475 <BR>                                                                                               
<B>Date of Licensure : </B> 01/12/07      <BR>                                                                                
                                                                                                                                <B>Additional Qualification : </B>     &nbsp; Not applicable in this profession                       <BR>                    
<B> <A href="http://www.op.nysed.gov/help.htm#status"> Status :</A></B> REGISTERED                                        <BR>
<B>Registered through last day of : </B> 08/15      <BR>

크롤러 도우미 클래스 :

<HR><CENTER><H3>License Information *</H3></CENTER><HR>                                                                       
<P>                                                                                                                           
       <CENTER> 06/03/2014 </CENTER> <BR>                                                                                     
<B>Name : </B> WILLIAMS AJAYA L                     <BR>                                                                      
<B>Address : </B> NEW YORK            NY                                          <BR>                                        
<B>Profession : </B> ATHLETIC TRAINER                          <BR>                                                           
<B>License No: </B> 001475 <BR>                                                                                               
<B>Date of Licensure : </B> 01/12/07      <BR>                                                                                
                                                                                                                                <B>Additional Qualification : </B>     &nbsp; Not applicable in this profession                       <BR>                    
<B> <A href="http://www.op.nysed.gov/help.htm#status"> Status :</A></B> REGISTERED                                        <BR>
<B>Registered through last day of : </B> 08/15      <BR>

tb 는 여러 줄짜리 텍스트 상자입니다 ... 그래서 다음과 같이 표시하고 싶습니다 :

WILLIAMS AJAYA L Name

Address NEW YORK NY

Profession ATHLETIC TRAINER

License No 001475

Date of Licensure 1/12/07

Additional Qualification Not applicable in this profession

Status REGISTERED

08/15 Registered through last day of

다음 단계는 SQL 데이터베이스에 쓰는 것이기 때문에 두 번째 인수를 배열에 추가하고 싶습니다.

검색 결과가있는 IE에서 URL을 가져올 수 있지만 스크립트에서 어떻게 코딩 할 수 있습니까?

수락 된 답변

이 작은 스 니펫을 시작해야합니다.

HtmlDocument doc = new HtmlDocument();
WebClient client = new WebClient();
string html = client.DownloadString("http://www.nysed.gov/coms/op001/opsc2a?profcd=67&plicno=001475&namechk=WIL");
doc.LoadHtml(html);

HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//div");

기본적으로 WebClient 클래스를 사용하여 HTML 파일을 다운로드 한 다음 해당 HTML을 HtmlDocument 개체로로드합니다. 그런 다음 XPath를 사용하여 DOM 트리를 쿼리하고 노드를 검색해야합니다. 위의 예제에서 "노드"는 문서의 모든 div 요소를 포함합니다.

다음은 XPath 구문에 대한 빠른 참조입니다. http://msdn.microsoft.com/en-us/library/ms256086(v=vs.110).aspx




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.