веб-сканирование, рубин, питон, кассандра - PullRequest
1 голос
/ 27 декабря 2010

Мне нужно написать скрипт, который вставит 1 миллион записей с именами пользователей или электронными письмами, сканируя Интернет, в базу данных.Скрипт может быть любого типа, например, python, ruby, php и т. Д.

Пожалуйста, дайте мне знать, возможно ли это? Если возможно, предоставьте информацию, как я могу создать скрипт.

Спасибо

Ответы [ 3 ]

1 голос
/ 06 октября 2012

Вам также следует взглянуть на Apache Nutch и Apache Gora, которые будут делать то, что вы ищете. Nutch выполняет фактическое сканирование, которое Гора сохраняет результаты в Cassandra, Hive или MySQL

0 голосов
/ 27 декабря 2010

Я бы добавил немного на стороне сканирования.Вы сказали, ползать в Интернете.Таким образом, здесь направление сканирования (то есть после выбора страницы, ссылка на которую становится следующей, становится очень важной).Но если у вас уже есть список веб-страниц (так называемый начальный список URL-адресов), вам просто нужно загрузить их и проанализировать reqd.данные.Если вам просто нужно разобрать адреса электронной почты, тогда regex будет вашим выбором.Поскольку в html нет тегов для писем, парсер htmldom вам не поможет.

0 голосов
/ 27 декабря 2010

Возможно, это может занять некоторое время, в зависимости от производительности вашей машины и вашего интернет-соединения.
Вы можете использовать библиотеку PHP cURL для автоматической отправки веб-запросов, а затем вы можете легко проанализировать данные с помощью библиотеки, например: simpHtmlDOM или использование нативного PHP DOM. Но остерегайтесь нехватки памяти, я также настоятельно рекомендую запускать скрипт из оболочки, а не из веб-браузера. Также рассмотрите возможность использования функций multi curl для ускорения процесса.

Это очень просто и быстро реализовать, хотя многопоточность в этом случае значительно повысит производительность, поэтому я предлагаю использовать один из других предложенных вами языков. Я знаю, что вы могли бы легко сделать это на Java с помощью библиотеки Apache HttpClient, манипулировать DOM и извлекать данные с помощью встроенной поддержки x-path, выполнять регулярные выражения или использовать одну из множества сторонних реализаций dom в Java.

Я настоятельно рекомендую также ознакомиться с библиотекой Java HtmlUnit , где это может значительно облегчить вашу жизнь, но, возможно, вы можете испытать снижение производительности. Хорошая многопоточная реализация даст огромный прирост производительности, а плохая может ухудшить работу вашей программы.

Вот некоторые ресурсы для Python:
http://docs.python.org/library/httplib.html
http://www.boddie.org.uk/python/HTML.html
http://www.tutorialspoint.com/python/python_multithreading.htm

...