1

我需要编写一个脚本,通过爬网将 100 万条用户名或电子邮件记录插入数据库。脚本可以是任何类型,如 python、ruby、php 等。

请让我知道是否可能?如果可能,请提供如何构建脚本的信息。

谢谢

4

3 回答 3

1

您还应该查看 Apache Nutch 和 Apache Gora,它们可以满足您的需求。Nutch 进行实际爬取,Gora 将结果存储在 Cassandra、Hive 或 MySQL 中

于 2012-10-06T14:36:57.757 回答
0

我会在爬行方面添加一点。你说爬网。所以这里的爬取方向(即抓取一个页面后,接下来访问哪个链接就变得很重要了)。但是,如果您已经有一个网页列表(称为种子 URL 列表),那么您只需要下载它们并解析出 reqd。数据。如果您只需要解析电子邮件地址,那么正则表达式将是您的选择。因为 html 没有任何电子邮件标签,所以 htmldom 解析器不会帮助您。

于 2010-12-27T10:12:22.020 回答
0

它可能需要一些时间,但取决于您的机器性能和您的互联网连接。
您可以使用 PHP 的 cURL 库来自动发送 Web 请求,然后您可以使用库轻松解析数据,例如:simplHtmlDOM或使用原生 PHP DOM。但要小心内存不足,我也强烈建议从 shell 而不是 Web 浏览器运行脚本。还可以考虑使用多卷曲功能,以加快进程。

尽管多线程在这种情况下会带来巨大的性能提升,但实现起来非常容易和快速,因此我建议使用您提出的其他语言之一。我知道您可以使用 Apache HttpClient 库在 Java 中轻松完成此操作,并使用本机 x-path 支持、正则表达式或使用 Java 中的众多第三方 dom 实现之一来操作 DOM 和提取数据。

我强烈建议您同时查看 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

于 2010-12-27T09:38:55.190 回答