2012-03-07 94 views
0

什麼是最簡單的語言或方法來輸入網站的網址並接收該網站上給定網址鏈接的每個網址。例如,如果我想看看我的網站上有多少次鏈接到一個名爲oranges的頁面,我會使用它。通過網站搜索特定的URL鏈接?

我會輸入到程序「http://www.mysite.com」,我想搜索「http://www.mysite.com/oranges」的網址,我會運行程序。作爲回報,我會得到一個文本文件或其他文件,其中包含指向「http://www.mysite.com/oranges」鏈接的所有URL。

輸入的可能是:

http://www.mysite.com http://www.mysite.com/oranges

和輸出可能是:

http://www.mysite.com/index.html 
http://www.mysite.com/broccoli.html 
http://www.mysite.com/asparagus.html 
http://www.mysite.com/fruits.html 
http://www.mysite.com/blog/post/my_favorite_fruits.html 

到目前爲止,我已經盡我個人最喜歡的:批,並拿出下面不成功程序:

FOR /F %%A in (input.txt) DO (
    curl -o temp.html %%A 
    FOR /F "tokens=1,2 delims=:" %%B in ('FINDSTR /I /R "http://.*" temp.html') DO (
    ECHO %%B >> input.txt 
     FOR /F %%C in (temp.html) DO (
      FINDSTR /X "http://.*" %%C >> output.txt 
)   
) 
) 
exit 

它,如上所述,並沒有真正的工作。

任何想法?這不是一項家庭作業,這是一個工作項目,它讓我瘋狂!

謝謝你們事先的任何和所有幫助。讓我知道,如果我需要更具體的任何事情!

回答

1

從我的知識,你可能能做的最好的是一種算法,抓住通過HTML鏈接和可能的Sitemaps中的網址和搜索中的index.html。(基本上,創建自己的站點地圖)。不能保證你會找到所有的東西,因爲大多數開發者有一些原因隱藏的東西(取消鏈接等)。你可能可以創建一個遞歸方法來完成我上面提到的內容。

+1

我很困惑,因爲你在說什麼的實現。算法如何?在批處理? C++?蟒蛇?感謝你的回答! – 2012-03-07 20:22:07

+1

你問如何編程?在那種情況下,Jon的答案基本上是正確的。 (它可以用幾乎任何語言編碼,包括C++,Python,Delphi,Java,C#或其他)。如果你正在尋找一個現有的程序來掃描你的網站並告訴你在哪裏連接了任何給定的URL,你可以嘗試諸如「XENU」,「A1 Website Analyzer」等工具。 – Tom 2012-03-08 15:22:50

+0

正如湯姆指出的那樣,有很多工具可以從中獲得最佳效果。一種可行的方法是讓搜索引擎爲你做。你可以去谷歌/ BING /雅虎,並使用他們的網站:標籤來搜索每個網站。在Google(網站:http://www.cnn.com)中輸入EX類型NO PARENS並添加相應的http://和www。這會給你所有的網頁,谷歌已找到該網站。你也許可以寫一些東西,只是爲了你給的網站URL而刪除所有的搜索結果網址。 – 2012-03-08 21:43:32

1

嘗試Scrapy http://scrapy.org/。這是一個python框架,可以幫助從啓動url抓取html內容並對其進行刮取。

它還遞歸爬刮線路,並提供最好的算法,以不重複抓取網址。 該文件很容易遵循,並創建一個簡單的程序。