Веб-сканирование, рубин, питон, кассандра

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

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

Спасибо

3 ответа

Решение

Возможно, это может занять некоторое время, в зависимости от производительности вашей машины и вашего интернет-соединения.
Вы можете использовать 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

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

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

Другие вопросы по тегам