Blog

2 August 2019

c# 웹 크롤링 예제

콜백/대리자 바로 가기는 소량의 논리를 추가하는 데 좋지만 더 무거운 작업을 수행하는 경우 ICrawlDecisionMaker의 사용자 지정 구현을 전달하고싶을 것입니다. 크롤러는 이 구현을 호출하여 페이지를 크롤링할지 여부, 페이지의 콘텐츠를 다운로드해야 하는지 여부 및 크롤링된 페이지의 링크를 크롤링해야 하는지 여부를 확인합니다. 데모 프로젝트에는 Abot의 속도를 크게 제한하는 몇 가지 구성 값이 설정되어 있습니다. 이것은 당신이 당신의 isp 공급자에 의해 금지 또는 크롤링 하는 사이트에 의해 차단 얻을 하지 않습니다 있는지 확인 하기 위한 것입니다. 이러한 설정은.. 5: (선택 사항) 동적 크롤링 백 또는 페이지 백에 사용자 지정 개체수를 추가할 수 있습니다. 이러한 개체는 CrawlContext.CrawlBag 개체, PageToCrawl.PageBag 개체 또는 크롤링 페이지.PageBag 개체에서 사용할 수 있습니다. 당신은 당신이 가서 그것을 bingle 경우 꽃 필터와 c # 주위에 읽기 자료의 좋은 비트를 얻을 것이다. 다음은 Venknar에 의해 C #에서 이러한 꽃 필터의 한 가지 예입니다. 어떻게 검색 엔진이 존재하는 수조 중 몇 페이지를 추천 할 수 있습니까?대답은 서버를 얼마나 적극적으로 크롤링하는지에 대한 눈을 떼지 않고 웹 크롤링하는 것입니다. y. 서버가 바쁜 시간은 시장(시간대)에 의해 결정될 수 있으며, 예를 들어 활동 버스트 시간(스포츠 사이트인 경우 큰 경기 의 시간 동안 및 그 주변에 더 무거운 사용이 있을 수 있음)이 있을 수 있습니다.

따라서 크롤링을 계획할 때는 타이밍을 고려하십시오. 타이밍에 대한 지능형 접근 방식 외에도 인덱싱중인 사이트에 `최소 ping 지연`이 있는지 확인해야합니다 . 2: 아래 옵션 중 한 가지를 사용하여 Abot을 구성합니다. 코드 주석을 보면 각 구성 값이 크롤링에 미치는 영향을 확인할 수 있습니다. 모든 구현에 대해 null을 전달하면 기본값이 사용됩니다. 아래 예제는 IPageRequester 및 IHyperLinkParser에 대 한 사용자 지정 구현을 사용 하지만 다른 모든 것에 대 한 기본값을 사용 합니다. 대규모 시스템에서 나타나는 일반적인 패턴 중 하나는 중앙 복제 관리자입니다. 대부분의 경우 이 관리자는 분산 작업자 노드 네트워크의 트래픽 컨트롤러 역할을 합니다. 크롤러 아키텍처의 경우 이러한 관리자를 사용하여 작업자 노드에 작업을 제공하고 결과를 다시 가져와 모든 것이 원활하게 실행되는지 모니터링할 수 있습니다.

Guvnor의 개념은 최상위 관리자이지만, 자연스럽게 스케일링, 성능 및 복원력을 위해, Guvnor 자체는 연결된 시스템의 그룹으로 마스터 컨트롤러를 구성하는 작은 엔진의 모음일 수 있습니다. 처음부터 자신의 guvnor를 개발보고 시작하기 전에, 거기에 무엇을 참조하십시오, Guvnor의 위치를 취할 수있는, 또는 Guvnor를 지원. 예를 들어 Gearman은 `작업을 수행하는 데 더 적합한 다른 기계 나 프로세스에 작업을 팜 아웃하는 일반 응용 프로그램 프레임 워크를 제공합니다.`. .Net 커뮤니티에 대한 두 가지 관련 배포판인 GearmanSharp 및 Gearman.net 있습니다. Gearman 다운로드 페이지에서 자세한 정보를 확인할 수 있습니다. Abot은 Log4Net을 사용하여 메시지를 기록합니다. 이러한 로그 문은 크롤링 중에 무슨 일이 일어나고 있는지 볼 수 있는 좋은 방법입니다. 그러나 log4net을 사용하지 않으려면 이 섹션을 건너뛸 수 있습니다. 누군가가 왜 그러한 비대해진 요청 및 결과 개념이 크롤러에 도입되는지 물어볼 것입니다. 사실 크롤러 엔진이 태스크 프로세서로 일반화될 때까지는 그렇지 않았습니다.

때문에 사실에 아무도 일반적인 작업을 시작해야하고 그것이 제공하는 것을 말할 수 없습니다 작업에 매개 변수를 제공하고 결과를 제공하는 메커니즘이 있어야합니다. 웹 인덱싱은 웹 사이트 또는 인터넷의 내용을 전체적으로 인덱싱하기 위한 다양한 방법을 참조하므로 TaskRequestBase 및 TaskResultBase에서 파생해야 하는 클래스를 사용하기로 결정했습니다. 인덱스는 기본적으로 단어와 그들을 특징으로 하는 웹 페이지의 큰 목록. 웹 크롤러는 웹을 정기적으로 검색하므로 항상 웹의 최신 인덱스를 갖습니다.

Bize Ulaşın