어떤 사람들은 크롤러를 보물로 여깁니다. 지금까지 어떤 사람들은 TND를 돈 때문에 팔고 있습니다. 어쩌면 아래 내용이 약간 절름발이 일 수도 있습니다.
아래에는 라이브러리에 쓰는 기능이 없습니다. 라이브러리에 들어가는 기능은 매우 간단합니다. 필요한 경우 직접 완성하세요. 코드를 복사하고 직접 실행하여 효과를 확인하세요.
Dim Url,List_PageCode,Array_ArticleID,i,ArticleID
희미한 Content_PageCode,Content_TempCode
희미한 Content_CategoryID,Content_CategoryName,BorderID,ClassID,BorderName,ClassName
희미한 기사 제목, 기사저자, 기사 보낸 사람, 기사 내용
URL = http://www.webasp.net/article/class/1.htm
List_PageCode = getHTTPPage(Url)
List_PageCode = RegExpText(List_PageCode, 인쇄</th></tr>,</table><table border=0 cellpadding=5,0)
List_PageCode = RegExpText(List_PageCode,<td align=left><a href='../,'><img border=0 src='../images/authortype0.gif',1)'현재 기사 가져오기 목록 페이지 링크(으로 구분)
Array_ArticleID = Split(List_PageCode,,)'기사 ID를 저장할 배열을 만듭니다.
i=0의 경우 Ubound(Array_ArticleID)-1로
ArticleID = Array_ArticleID(i)'기사 ID
Content_PageCode = getHTTPPage(http://www.webasp.net/article/&ArticleID) '기사 페이지의 내용 가져오기
'==========시작하려면 기사 카테고리 및 관련 ID 매개변수 가져오기========================
Content_TempCode = RegExpText(Content_PageCode,<a href=/article/>기술 튜토리얼</a> >> ,>> 콘텐츠</td>,0)
Content_CategoryID = RegExpText(Content_PageCode,<a href='../class,/'>,1)
BorderID = Split(Content_CategoryID,,)(0)' 카테고리 ID
ClassID = Split(Content_CategoryID,,)(1)'하위 클래스 ID
'==========주요 카테고리가 있는지 확인하세요.시작=================
'없으면 데이터베이스에 저장
'==========주요 카테고리 존재 여부 확인End=================
'Response.Write(BorderID & , & ClassID & <br />)
Content_CategoryName = RegExpText(Content_PageCode,/'>,</a>,1)
BorderName = Split(Content_CategoryName,,)(0)'범주 이름
ClassName = Split(Content_CategoryName,,)(1)'하위 클래스 이름
'==========하위 클래스가 존재하는지 확인하기시작=================
'없으면 데이터베이스에 저장
'==========하위클래스가 존재하는지 확인하세요. end=================
'==========기사 분류 및 관련 ID 매개변수 가져오기가 종료됩니다========================
'==========기사 제목과 내용을 가져와서 시작하세요============================= =
ArticleTitle = RegExpText(Content_PageCode,<tr><td align=center bgcolor=#DEE2F5><strong>,</strong></td></tr>,0)
ArticleAuthor = RegExpText(Content_PageCode,<tr><td><span class=blue>저자:</span>,</td></tr>,0)
ArticleFrom = RegExpText(Content_PageCode,<tr><td><span class=blue>출처:</span>,</td></tr>,0)
ArticleContent = RegExpText(Content_PageCode,<tr><td class=content style=WORD-WRAP: break-word id=zoom>,</td></tr>&VBCrlf& </table>&VBCrlf& </td></tr> </table>,0)
'==========기사 제목 및 내용 가져오기 끝===============================
응답.쓰기(기사제목& <br /><br />)
응답.플러시()
다음
몇 가지 기능이 첨부되어 있습니다.
함수 getHTTPPage(url)
IF(IsObjInstalled(Microsoft.XMLHTTP) = False)THEN
Response.Write <br><br>서버가 Microsoft.XMLHTTP 구성 요소를 지원하지 않습니다.
Err.Clear
응답.종료
종료 IF
오류 발생 시 다음 재개
희미한 http
SET http=Server.CreateObject(Msxml2.XMLHTTP)
Http.open GET,url,False
Http.send()
IF(Http.readystate<>4)THEN
종료 기능
종료 IF
getHTTPPage=BytesToBSTR(Http.responseBody,GB2312)
http=NOTHING으로 설정
IF(Err.번호<>0)THEN
Response.Write <br><br>파일 콘텐츠를 가져오는 동안 오류가 발생했습니다.
'응답.끝
Err.Clear
종료 IF
기능 종료
함수 BytesToBstr(CodeBody,CodeSet)
희미한 objStream
SET objStream = Server.CreateObject(adodb.stream)
objStream.Type = 1
objStream.Mode =3
objStream.Open
objStream.Write CodeBody
objStream.Position = 0
objStream.Type = 2
objStream.Charset = 코드세트
BytesToBstr = objStream.ReadText
objStream.Close
SET objStream = 아무것도 아닙니다
기능 종료
'===============================================
'기능: 구성요소가 설치되었는지 확인
'반환 값: True ---- 이미 설치됨
' 거짓 ---- 설치되지 않음
'===============================================
함수 IsObjInstalled(objName)
오류 발생 시 다음 재개
IsObjInstalled = 거짓
오류 = 0
희미한 테스트Obj
SET testObj = Server.CreateObject(objName)
IF(0 = Err)THEN IsObjInstalled = True
SET testObj = 아무것도 아님
오류 = 0
기능 종료
함수 RegExpText(strng,strStart,strEnd,n)
Dim regEx,일치,일치,RetStr
SET regEx = 새 RegExp
regEx.Pattern = strStart&([/s/S]*?)&strEnd
regEx.IgnoreCase = 참
regEx.Global = 참
SET 일치 = regEx.Execute(strng)
경기의 각 경기에 대해
IF(n=1)THEN
RetStr = RetStr & regEx.Replace(Match.Value,$1) & ,
또 다른
RetStr = RetStr & regEx.Replace(Match.Value,$1)
종료 IF
다음
RegExpText = RetStr
SET 정규식=NOTHING
기능 종료