node.js - 如何抓取网络以查找围绕某个主题的链接/网站?

标签 node.js web-crawler bigdata

我真的不知道从哪里开始这个项目,所以请原谅这个模糊的标题。

当我在谷歌上搜索“如何编程”时,我希望以某种可行的形式获得搜索结果。我不知道我是否可以以某种方式使用谷歌或其他一些搜索,但如果不能,我如何构建自己的软件来获取这些数据?谷歌如何运行搜索?

我了解 JavaScript 和 NodeJS - 我还需要学习什么? (我肯定会想象某种数据库)。

最佳答案

MongoDB ( mongoose ) 用于存储您的数据和 PhantomJS (服务器端的 headless 浏览器)用于抓取将是您最好的选择。我目前正在开发一个网络爬虫,用于结合两者来爬行网站。效果非常好。

您将需要使用 PhantomJ 加载 google,输入搜索内容,然后从页面中获取 html。然后,您可以使用类似 cheerio 的库处理 HTML 。它是一个类似服务器端 jquery 的 DOM 解析库。

然后只需浏览并单击下一页结果,然后根据需要重复上述步骤。从每个页面收集您需要的信息并将其存储在 mongo 中。

还有很多其他事情您需要担心,例如如何处理验证码、IP 阻止等。但以上内容应该可以帮助您开始。

关于node.js - 如何抓取网络以查找围绕某个主题的链接/网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42216919/

相关文章:

java - 如何将一个大序列文件拆分为多个序列文件?

hadoop - 如何使用Flume将数据实时写入HDFS?

node.js - 我的 nodeJS 应用程序正在发送可疑的 GET/POST 请求。我有病毒吗?

javascript - 如何将数据从 Promise 推送到数组

node.js - nginx 上的代理传递 Socket.IO 连接不起作用

node.js - 为 localhost 生成 MinIO presignedUrls,而不是 docker 服务名称

python - Apache airflow 可以在 Windows 上使用吗?应该提前做什么?

android - 爬行的Google Play商店应用

ajax - 可抓取的 Ajax 内容。没有 hashbang 的 SEO ing。我的方法可以吗?

csv - 将大量数据从 Cassandra 导出到 CSV