2008-12-02 92 views
4

我基本上是想蜘蛛在我的本地網站並創建所有的標題和URL列表作爲在本地主機上的網站的所有網頁獲得值列表。我對任何有用的東西都是開放的 - 一個C#控制檯應用程序,PowerShell,一些現有的工具等。我們可以假設標記確實存在於文檔中。</p> 最快的方式從

注:我需要實際上蜘蛛的文件,因爲標題可能被設置爲代碼而不是標記。

+0

這對於unix命令行工具來說很容易。你可以通過cygwin獲得這些嗎? – 2008-12-02 20:19:28

回答

5

一個快速和骯髒Cygwin的bash腳本其中做工作:

#!/bin/bash 
for file in $(find $WWWROOT -iname \*.aspx); do 
    echo -en $file '\t' 
    cat $file | tr '\n' ' ' | sed -i 's/.*<title>\([^<]*\)<\/title>.*/\1/' 
done 

說明:此發現的根目錄$ WWWROOT下的每個.aspx文件,用空格替換所有的換行,以便有之間沒有換行符<title></title>,然後抓取這些標籤之間的文本。

+0

這似乎不太有效。我究竟做錯了什麼? – Larsenal 2008-12-02 23:56:11

0

好吧,我不熟悉的Windows,而是讓你在正確的方向:使用XSLT轉換與

<的xsl:value-of的選擇=在 「/頭/標題」/ > 在那裏得到標題或者如果可以的話,使用XPath'/ head/title'來獲得標題。

3

我認爲一個類似於what Adam Rosenfield suggested的腳本就是你想要的,但是如果你想要實際的URL,請嘗試使用wget。有了一些適當的選項,它會打印出你網站上所有頁面的列表(加上下載它們,你可以用--spider來壓制)。通過正常的Cygwin安裝程序可以實現wget程序。

+0

是的,那正是我試圖在這裏發帖的原因!這是一個片段:site = mysite.com wget --recursive --accept \ *。html http:// $ site; for $ in(find $ site -name * .html);//亞當的身體 – DustinB 2008-12-02 21:34:21

0

我將使用wget,如上所述。 請確保您的網站上沒有任何spider traps

0

你應該考慮使用scrapy外殼

退房

http://doc.scrapy.org/intro/tutorial.html

在控制檯把這樣的事情:

hxs.x('/ HTML /頭/標題/文本( )')。extract()

如果你想要所有的標題,你應該做一個蜘蛛......它很容易。

也考慮遷移到Linux:P