我需要编写一个脚本,通过抓取网络将100万个用户名或电子邮件记录插入数据库。 该脚本可以是任何类型,如python,ruby,php等。
请告诉我有可能吗?如果可能,请提供我如何构建脚本的信息。
由于
答案 0 :(得分:1)
您还应该看看Apache Nutch和Apache Gora,它们可以满足您的需求。 Nutch实际抓取Gora将结果存储在Cassandra,Hive或MySQL中
答案 1 :(得分:0)
可能需要一些时间,具体取决于您机器的性能和互联网连接。
您可以使用PHP的cURL库自动发送Web请求,然后您可以使用库轻松解析数据,例如:{ {3}}或使用本机PHP DOM。但要注意内存不足,我强烈建议从shell而不是Web浏览器运行脚本。还可以考虑使用多卷曲功能来加固过程。
这实现起来非常容易和快速,虽然多线程会在这种情况下提供巨大的性能提升,所以我建议使用您提出的其他语言之一。我知道您可以使用Apache HttpClient库轻松地在Java中执行此操作,并使用本机x路径支持,正则表达式或使用Java中的许多第三方dom实现之一来操纵DOM并提取数据。
我强烈建议您查看Java库simplHtmlDOM,它可以让您的生活更轻松,但您可能会因此而受到性能影响。一个好的多线程实现可以带来巨大的性能提升,但糟糕的一个可能会让你的程序运行更糟。
以下是python的一些资源:
HtmlUnit
http://docs.python.org/library/httplib.html
http://www.boddie.org.uk/python/HTML.html
答案 2 :(得分:0)
我会在爬行方面添加一点。 你说爬网。所以这里的爬行方向(即在获取页面之后,下一次访问的链接变得非常重要)。但是如果你已经有了一个网页列表(称为种子URL列表),那么你只需要下载它们并解析出reqd。数据。如果您只需要解析电子邮件地址,那么正则表达式将是您的选择。因为html没有任何电子邮件标签,所以htmldom解析器不会帮助你。