2014-11-04 55 views
8

我想下載一個網站的網址是建成使用wget卻忽略URL參數

http://www.example.com/level1/level2?option1=1&option2=2

內URL只有http://www.example.com/level1/level2是每個頁面獨特的內容,以及選項1的值和option2正在改變。事實上,由於這些變量,每個獨特的頁面可能有數百種不同的符號。我正在使用wget獲取所有網站的內容。由於這個問題我已經下載了超過3GB的數據。有沒有辦法告訴wget忽略網址問號背後的所有內容?我無法在手冊頁中找到它。

+0

讓我們希望沒有參數的URL仍然會返回一些有用的信息。 – 2014-11-04 13:26:56

+0

它的確如此。如果問號後面有或沒有任何內容,則沒有區別。似乎跟蹤瀏覽器來自哪裏等等。 – cootje 2014-11-04 13:29:42

+0

基於wget手冊頁,此時不存在與使用wget的查詢字符串進行匹配。任何使用wget的具體原因不是像scrapy或curl與一些shell腳本一樣? – 2014-11-04 13:33:41

回答

0

問題已解決。我注意到,我要下載的網址是所有搜索引擎友好,這裏的描述使用破折號形成:

http://www.example.com/main-topic/whatever-content-in-this-page

其他所有網址必須到CMS引用。我得到了我需要的一切

wget -r http://www.example.com -A "*-*" 

這樣做的竅門。感謝分享思想!

+0

很高興爲您效力,但它不是解決您的原始問題的方法,「是否有辦法告訴wget忽略URL問號背後的所有內容?」 kenorb爲遇到此問題的其他人提供了最佳解決方案 – thinkmassive 2016-10-14 00:00:51

7

您可以使用--reject-regex來指定拒絕特定URL地址的模式,例如,

wget --reject-regex "(.*)\?(.*)" -m -c --content-disposition http://example.com/ 

這將鏡像網站,但它會忽略帶問號的地址 - 用於鏡像wiki網站。

+0

謝謝您,這是最好的wget-only解決方案(不涉及其他工具,如過濾代理)。每個html頁面仍然被提取一次以解析鏈接,但是它避免了重複獲取+刪除與GET參數相同的鏈接,例如Web服務器文件列表中的標題鏈接。 – thinkmassive 2016-10-14 00:05:19