사실 저는 DHT 크롤러의 주장에 동의하지 않습니다.
다른 언어는 자연스럽게 다른 용도로 사용됩니다. 환경을 고려하지 않고 어느 것이 좋다, 나쁘다를 논하는 것은 훌리건일 뿐입니다.
1. 재미로 하고, 타겟 방식으로 몇 페이지를 크롤링하고, 효율성이 핵심 요구 사항이 아니라면 어떤 언어라도 작동할 것이며 성능 차이도 크지 않을 것입니다. 물론 매우 복잡한 페이지를 접하고 정규 표현식이 매우 복잡하면 크롤러의 유지 관리 가능성이 떨어집니다.
2. 방향 크롤링을 수행 중이고 대상이 동적 js를 구문 분석해야 하는 경우.
따라서 현재로서는 일반적인 요청 페이지를 사용한 다음 콘텐츠를 가져오는 방법은 확실히 작동하지 않습니다. js 코드를 동적으로 구문 분석하려면 fifox 및 chrome과 유사한 js 엔진이 필요합니다. 이때는 casperJS+phantomjs 또는 slimerJS+phantomjs를 권장합니다
3. 대규모 웹사이트 크롤링인 경우
이때 효율성, 확장성, 유지보수성 등을 고려해야 합니다.
대규모 크롤링에는 분산 크롤링, 엄격한 판단 메커니즘, 작업 예약 등 여러 측면이 포함됩니다. 더 깊이 들어가면 다음 중 어떤 질문이 더 쉬워지나요?
이때 언어 선택이 매우 중요합니다.
NodeJs: 크롤링에 매우 효율적입니다. 높은 동시성, 멀티스레드 프로그래밍은 순회 및 콜백이 단순해지고 메모리 및 CPU 사용량이 적으며 콜백을 잘 처리해야 합니다.
PHP: 어디에서나 다양한 프레임워크를 사용할 수 있으므로 아무거나 사용할 수 있습니다. 다만 PHP의 효율성에는 문제가 있는게 사실... 별로 말은 안하겠습니다
Python: Python으로 글을 더 많이 작성하고 다양한 문제에 대한 지원이 더 좋아졌습니다. scrapy 프레임워크는 사용하기 쉽고 많은 장점이 있습니다.
JS는 글쓰기에 별로 적합하지 않은 것 같아요... 효율성 문제. 안 썼다면 아마 큰 어려움을 겪을 것 같아요.
제가 아는 한 대기업에서도 C++를 사용하는 경우가 많습니다. 간단히 말해서 대부분 오픈 소스 프레임워크에서 수정됩니다. 실제로 바퀴를 재발명하는 사람은 많지 않습니다.
가치가 없습니다.
Java를 사용하여 개발된 jsoup 도구를 사용해 볼 수 있습니다.
이제 노드를 사용해 보겠습니다. HTML을 가장 잘 이해하는 사람은 자바스크립트입니다
노디 +1
노디 +1
사실 저는 DHT 크롤러의 주장에 동의하지 않습니다.
다른 언어는 자연스럽게 다른 용도로 사용됩니다. 환경을 고려하지 않고 어느 것이 좋다, 나쁘다를 논하는 것은 훌리건일 뿐입니다.
1. 재미로 하고, 타겟 방식으로 몇 페이지를 크롤링하고, 효율성이 핵심 요구 사항이 아니라면 어떤 언어라도 작동할 것이며 성능 차이도 크지 않을 것입니다. 물론 매우 복잡한 페이지를 접하고 정규 표현식이 매우 복잡하면 크롤러의 유지 관리 가능성이 떨어집니다.
2. 방향 크롤링을 수행 중이고 대상이 동적 js를 구문 분석해야 하는 경우.
따라서 현재로서는 일반적인 요청 페이지를 사용한 다음 콘텐츠를 가져오는 방법은 확실히 작동하지 않습니다. js 코드를 동적으로 구문 분석하려면 fifox 및 chrome과 유사한 js 엔진이 필요합니다. 이때는 casperJS+phantomjs 또는 slimerJS+phantomjs를 권장합니다
3. 대규모 웹사이트 크롤링인 경우
이때 효율성, 확장성, 유지보수성 등을 고려해야 합니다.
대규모 크롤링에는 분산 크롤링, 엄격한 판단 메커니즘, 작업 예약 등 여러 측면이 포함됩니다. 더 깊이 들어가면 다음 중 어떤 질문이 더 쉬워지나요?
이때 언어 선택이 매우 중요합니다.
NodeJs: 크롤링에 매우 효율적입니다. 높은 동시성, 멀티스레드 프로그래밍은 순회 및 콜백이 단순해지고 메모리 및 CPU 사용량이 적으며 콜백을 잘 처리해야 합니다.
PHP: 어디에서나 다양한 프레임워크를 사용할 수 있으므로 아무거나 사용할 수 있습니다. 다만 PHP의 효율성에는 문제가 있는게 사실... 별로 말은 안하겠습니다
Python: Python으로 글을 더 많이 작성하고 다양한 문제에 대한 지원이 더 좋아졌습니다. scrapy 프레임워크는 사용하기 쉽고 많은 장점이 있습니다.
JS는 글쓰기에 별로 적합하지 않은 것 같아요... 효율성 문제. 안 썼다면 아마 큰 어려움을 겪을 것 같아요.
제가 아는 한 대기업에서도 C++를 사용하는 경우가 많습니다. 간단히 말해서 대부분 오픈 소스 프레임워크에서 수정됩니다. 실제로 바퀴를 재발명하는 사람은 많지 않습니다.
가치가 없습니다.
제 감상을 토대로 가볍게 쓴 글입니다. 수정도 환영합니다.
pyspider를 사용하세요. 성능은 스크래피보다 나쁘지 않고, WEBUI로 더 유연하며, JS 크롤링도 지원합니다~
나만의 데모로 플레이 가능해요~
셀레늄
nodejs +1
아니요, 제가 틀렸습니다.
고성능 크롤러는 서버만큼 동시성에 적합하지는 않지만 효율성(중복 감소)을 고려하면 동시성보다 병렬성에 더 적합합니다.
글쎄, 또 틀렸어요.
크롤러의 동시성과 병렬성은 거의 동일합니다~
아니요, 다릅니다.
잊으세요, nodejs +1.
대부분 Python을 사용하고 있으며, 물론 Java C++도 많이 있습니다. Python은 빠르게 제공되며 중소 규모 애플리케이션에 비해 큰 이점이 있습니다. 대규모인 경우 일부 성능 병목 현상 코드를 다시 작성하려면 최적화 또는 C가 필요합니다.
파이썬의 scrapy를 사용해 볼 수 있습니다