2010-12-27 7 views
1

웹을 크롤링하여 1 백만 개의 사용자 이름 또는 이메일 기록을 데이터베이스에 삽입하는 스크립트를 작성해야합니다. 스크립트는 파이썬, 루비, PHP 등과 같은 유형일 수 있습니다.웹 크롤링, 루비, 파이썬, 카산드라

가능한 경우 알려 주시기 바랍니다. 가능하면 가능한 경우 스크립트 작성 방법에 대한 정보를 제공해주십시오.

감사

답변

0

그 수는 컴퓨터의 성능과 인터넷 연결에 따라하지만 약간의 시간이 걸릴 수 있습니다.
PHP의 cURL 라이브러리를 사용하여 웹 요청을 자동으로 보내면 라이브러리 (예 : simplHtmlDOM)를 사용하거나 네이티브 PHP DOM을 사용하여 데이터를 쉽게 파싱 할 수 있습니다. 그러나 메모리가 부족하다는 점에 유의하고 웹 브라우저가 아닌 쉘에서 스크립트를 실행하는 것이 좋습니다. 또한 멀티 컬 기능을 사용하여 프로세스를 고정시키는 것도 고려하십시오.

멀티 스레딩이이 시나리오에서 엄청난 성능 향상을 가져올 지 모르지만 구현하기가 쉽고 빠르기 때문에 제안한 다른 언어 중 하나를 사용하는 것이 좋습니다. Apache HttpClient 라이브러리를 사용하여 Java에서 쉽게이 작업을 수행 할 수 있고 DOM을 조작하고 원시 x 경로 지원, 정규식을 사용하여 데이터를 추출하거나 Java에서 여러 타사 DOM 구현 중 하나를 사용할 수 있습니다.

Java 라이브러리 HtmlUnit을 확인해 보는 것이 좋습니다. 삶이 훨씬 쉬워 질 수도 있지만, 성능이 좋을 수도 있습니다. 좋은 멀티 스레딩 구현은 엄청난 성능 향상을 가져 오지만 나쁜 프로그램은 프로그램 실행을 악화시킬 수 있습니다. 여기

는 파이썬에 대한 몇 가지 자료입니다 : 내가 크롤링 측에 약간을 추가
http://docs.python.org/library/httplib.html
http://www.boddie.org.uk/python/HTML.html
http://www.tutorialspoint.com/python/python_multithreading.htm

0

. 당신은 웹을 크롤링했다. 여기에서 크롤링 방향 (예 : 페이지를 가져온 후, 다음에 방문하기위한 링크가 매우 중요하게됩니다). 그러나 이미 웹 페이지 목록 (시드 URL 목록이라고 함)이 있으면 다운로드하고 reqd를 구문 분석하면됩니다. 데이터. 전자 메일 주소를 구문 분석하기 만하면 정규식이됩니다. html에는 전자 메일에 대한 태그가 없으므로 htmldom 파서가 도움이되지 않습니다.

1

당신이 찾고있는 것을 할 수있는 Apache Nutch와 Apache Gora도보아야합니다. Nutch는 Gora가 Cassandra, Hive 또는 MySQL에 결과를 저장하는 실제 크롤링을 수행합니다.

+0

나는 늦었다 고 알고 있습니다. 그러나이 질문은 질문을 받고 답변 한 이래로 왔습니다. –