2012-07-19 7 views
1

많은 웹 사이트에서 데이터를 가져와야하는 크롤러를 작성하고 있습니다. 문제는 모든 웹 사이트마다 구조가 다릅니다. 다른 웹 사이트의 데이터를 (정확하게) 다운로드하는 크롤러를 어떻게 쉽게 작성할 수 있습니까? 웹 사이트의 구조가 변경되면 크롤러를 다시 작성해야합니까, 아니면 다른 방법이 있습니까?자동 웹 크롤러

자동 웹 크롤러가 채굴하는 데이터의 품질을 높이기 위해 사용할 수있는 논리 도구 및 구현 도구는 무엇입니까 (많은 웹 사이트가 다른 구조와 관련되어 있음)?

감사합니다!

+0

json 태그는 무엇입니까? – Kiril

답변

0

나는 그것이 당신이 유연한 데이터 저장소에 데이터를 저장 해야하는 경우에는 어떤 식 으로든 쿼리하려는 것으로 가정합니다. 관계형 데이터베이스는 엄격한 스키마를 가지고 있으므로 용도에 적합하지 않지만 스키마를 앞에 정의하지 않아도 반 구조화 된 데이터를 저장할 수 있지만 여전히 강력한 쿼리 언어를 제공하는 mongodb과 같은 것입니다.

크롤러 코드에서 데이터를 나타내는 방법은 동일합니다. 구조가 앞에 정의 된 클래스에 데이터를 매핑하지 말고 런타임에 변경할 수있는 유연한 데이터 구조를 사용하십시오. Java를 사용하는 경우 데이터를 HashMaps로 직렬화 해제하십시오. 다른 언어에서는 사전 또는 해시라고 할 수 있습니다.

0

실제로 웹 사이트에서 데이터를 긁어 모으는 경우 구조화 된 방식으로 데이터를 쿼리 할 수있는 일종의 웹 서비스가 제공 될 가능성이 있습니다.

그렇지 않으면 스스로 해결할 수 있으며 이용 약관을 위반하는 것일 수도 있습니다.

0

웹 사이트에 API가없는 경우 춥고 사용하는 각 데이터 형식에 대해 별도의 추출 모듈을 작성해야합니다. 웹 사이트에서 형식을 변경하면 형식 모듈을 업데이트해야합니다. 표준 작업은 크롤링하는 모든 웹 사이트에 플러그인을 설치하고 이미 수집 한 데이터로 회귀 테스트를 수행하는 테스트 프레임 워크를 사용하는 것입니다. 테스트가 실패하면 무언가 잘못되었다는 것을 알게되고 형식 플러그인을 업데이트해야하는지 또는 다른 문제가 있는지 조사 할 수 있습니다.

어떤 종류의 데이터를 수집하는지 알지 못하면 채굴 된 데이터의 "품질"을 개선하는 방법에 대해 가설을 세우는 것이 매우 어려울 것입니다.

0

웹 사이트에서 API와 같은 데이터에 액세스 할 수 있는지 여부를 알 수 있습니다. 그렇다면 이러한 종류의 구조화 된 데이터를 웹 사이트에 직접 사용할 수 있습니다. 그렇지 않은 경우에는 플러그인이 필요할 수 있습니다. 또는 Octoparse과 같은 API 액세스 권한이있는 다른 웹 크롤러로 전환하여 자신의 웹 크롤러에 대한 API에 액세스하는 방법을 찾을 수 있습니다.