2012-08-03 50 views
0

我需要做的是计算在网页上bash脚本:字出现在网站

这个词出现的脚本我在做什么是计算随机IP地址(避免检查相同的IPS不止一次),使用nmap来查看端口80是否打开以知道它是否是Web服务器,然后使用w3m将http页作为文件。 很容易经过数字occurances

我得到了这个过程需要花费很多的一些问题和问题

  • ,但我想不出任何方法使人们更快
  • 许多ips与端口80打开不是网站,他们不起来,他们可能有一些问题,有没有什么办法只检查网站已经启动?
  • 这种方法只检查单词出现在一个网站的索引页,有没有办法还检查其他公共网页?

非常感谢

+3

使用命名为基础的虚拟主机,具有IP地址是不够的。您还需要知道指向该IP的每个DNS名称。一个IP可以为数千个网站提供服务。 – jordanm 2012-08-03 22:57:11

+2

听起来像你打算写一个网页刮板。 bash脚本可能不是该工作的最佳工具。有exisiting的框架存在,这将有助于你建立一个相当快,如[scrapy(http://scrapy.org/),[Heritrix的(https://webarchive.jira.com/wiki/display/Heritrix/Heritrix; jsessionid = 423A366AA0AD45A45D0439A34E2C5A43)等等。如果您想使用脚本创建一个,请考虑使用['wget'](http://www.dheinemann.com/2011/archiving-with-wget/)。 – 2012-08-03 23:04:53

+0

谢谢你们。首先,我需要为我的大学制作这个脚本,所以它必须在bash编程中。有没有办法让每个DNS名称为该IP?我知道很多提供此服务的网站。我也试着用“dig -x ipadress + short”,它给了我域名。问题是它只是一个主机。够了吗?因为正如你所说,一个单一的ip可以包含数千个网站,并且只需要一个就可以了。有没有一个Linux命令来做到这一点?还有怎么得到其他网页的信息(而不是索引之一) – Epilogue 2012-08-03 23:25:10

回答

-1

我做类似的东西,使用awk。 Awk对于文本解析非常棒。我所做的是分析在Apache日志中完成每个IP地址的HTTP GET数量。所以像你这样的机器人很容易出现在我的统计数据中:P使用awk,我超越了所有同事在PHP,Ruby和bash脚本中所做的所有解决方案。

的问题是你是不是产生每个文件(或页面)的统计数据。你正在总结所有结果,对吧?所以我会使用SQLite来跟踪一个单词在所有扫描文本中出现的次数。使用shell脚本在SQLite中添加数据很容易(也很快)。

另外,应用户的wget --spider或其他蜘蛛HTTP客户,因为他们不会只从索引页,但是从已经在第一页的链接(的HREF)所有页面下载内容。所以你可以递归地扫描一个网站。

+0

-1我认为你没有正确理解这个问题。 – tripleee 2012-08-12 06:20:33

+0

我认为你没有正确理解我的答案。我已经涵盖了所有主题: *性能问题?使用awk而不是bash脚本。它比任何解析文本都快。 *不是寻求端口80打开,而是使用真正的HTTP客户端(如wget)进行网页爬行,并为他提供第一个访问的网站。它会告诉你试图分析端口80中实际不是网页的内容的问题。 *此外,使用wget或其他具有递归功能的HTTP客户端,您将能够分析所有子页面和链接,而不仅仅是主页面。 – 2012-08-12 19:21:41