2012-08-03 51 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