【发布时间】:2010-04-18 05:10:50
【问题描述】:
我想知道 - 爬虫可以完全用 javascript 编写吗?这样,只有在用户需要信息并且一切都在个人用户的计算机上运行时才会调用爬虫。
如果爬虫是在服务器端编写的 - 那不是也有 IP 被阻止的风险吗?
【问题讨论】:
我想知道 - 爬虫可以完全用 javascript 编写吗?这样,只有在用户需要信息并且一切都在个人用户的计算机上运行时才会调用爬虫。
如果爬虫是在服务器端编写的 - 那不是也有 IP 被阻止的风险吗?
【问题讨论】:
首先,在谈论细节之前,您必须了解爬行非常缓慢。如果您正在查看一个站点,则获得任何类型的有意义的网络索引需要几分钟,如果您正在查看多个来源(通常是几周、几个月或几年),则至少需要几天时间。通过实时抓取提供搜索服务根本不可行。
至于细节,没有什么能阻止人们用 Javascript 编写爬虫。但是,不是在浏览器嵌入的 javascript 中,至少由于跨域策略而没有服务器端代理。
【讨论】:
可以使用 javascript 编写爬虫,例如使用 Node.JS。但是,您可能无法在用户的浏览器中编写一个。这是因为:
【讨论】:
有一些方法可以处理跨域问题。搜索“Access-Control-Allow-Origin”,你会看到如何。
实现这种爬虫的最简单方法是编写插件(firefox)或扩展(chrome),然后将您的javascript代码注入访问的页面。这样,您将看到与文档作者看到的完全相同的内容。您可以简单地调用 document,body.innerText,然后将内容发布到您的服务器进行索引。
我自己有这样一个爬虫工作,有几个浏览器在不同的 ip 地址上爬取。
【讨论】: