パラメーター付きのリンクをたどらずにwgetでダウンロードする方法


11

CDに含める2つのサイトをダウンロードしようとしています。

http://boinc.berkeley.edu/trac/wiki
http://www.boinc-wiki.info

私が抱えている問題は、これらが両方ともwikiであることです。例えば、ダウンロードする場合:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif http://www.boinc-wiki.info/

...?action = edit ...?action = diff&version = ...のようなリンクもたどるので、たくさんのファイルを取得します

誰かがこれを回避する方法を知っていますか?

画像や差分などのない現在のページが欲しいだけです。

PS:

wget -r -k -np -nv -l 1 -R jpg,jpeg,png,gif,tif,pdf,ppt http://boinc.berkeley.edu/trac/wiki/TitleIndex

これはバークレーでは機能しましたが、boinc-wiki.infoはまだ問題を引き起こしています:/

PPS:

最も関連性の高いページと思われるものを入手しました:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info

スーパーユーザーとserverfaultの間でクロスポストする必要はありませんserverfault.com/questions/156045/…–
ブライアン

どこに投稿すればいいですか?
タイファイター

これは正しい場所です。サーバーの質問ではありません。
デビッドZ

それでも、サーバーフォールトでより良い答えを得ました;)
タイファイター

回答:


5

wgetの新しいバージョン(v.1.14)は、これらすべての問題を解決します。

--reject-regex=....クエリ文字列を処理するには、新しいオプションを使用する必要があります。

これらの新しいオプションを含む新しいマニュアルが見つからなかったので、helpコマンドを使用する必要があることに注意してください wget --help > help.txt


4
wget --reject-regex '(.*)\?(.*)' http://example.com

--reject-type posixデフォルト)。wget他のコメントによると、最近(> = 1.14)のバージョンでのみ機能します。

通話--reject-regexごとに1回しか使用できないように注意してくださいwget。つまり、|複数の正規表現を選択する場合は、単一の正規表現で使用する必要があります。

wget --reject-regex 'expr1|expr2|…' http://example.com

バージョン要件については真実かもしれません。v1.12があり、オプションが無効でした。v1.15へのアップグレード後はそうでした。
yunzen 14

|GNU Wget 1.16では、(「パイプ」)シンボルを使用した正規表現の代替は機能しません。
サンパブロクパー

0
wget -R "*?action=*"

これ?action=により、名前に含まれているものはすべて除外されます。


3
「クエリ文字列(疑問符(?ローカルファイル用
タイファイター

うーん、私はそれを見逃したに違いない。異なるファイルであることさえ知らなければ、wgetでこれを行うことはできないようです。別のプログラムをお勧めします。
大雪

-3

wikiの公開サイトをリーチするのは悪い負荷だと思う。

Wikiが公開されていて、サイト所有者がコンテンツの共有を気にしない場合、通常はダウンロード可能なバックエンド(データベースなど)ダンプを提供します。したがって、データパックをダウンロードし、同じWikiエンジンのローカルインスタンスをセットアップし、そこにデータをインポートして、ローカルコピーを取得するだけです。その後、必要に応じて、ローカルでリーチングを行うことができます。


-w秒があります。例えば-w 5. gnu.org/software/wget/manual/html_node/...
barlop
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.