
wget
--spider
壊れた内部リンクを直接識別するオプション:
wget --spider --recursive --level=0 mywebsite.com
壊れたアウトバウンドリンクを見つけるために拡張しようとしましたが-H
(私が知っている限り)、外部ドメインで追加の再帰レベルを指定できないため、--level=0
スパイダーがワールドワイドWeb全体で解放するしかありません。
私が考えることができる1つの回避策は、ウェブサイトsitemap.xml
(利用可能な場合)を使用してドメインの完全なURLセットを取得し、それをフィードバックしてwget
クロールの深さを制限することです。
wget -O - https://mywebsite.com/sitemap.xml \
| hred -xcr [email protected] \
| wget -i - -H --spider --recursive --level 1
この設定では別々のツールを使用します。hred
XMLからURLを抽出します。
壊れた外部リンクを見つけるより効率的な方法はありますかwget
?サイトマップを使用してデフォルトで機能するようにするか、理想的にはXMLの存在に依存しないようにします。
答え1
直接読書に関してはsitemap.xml
これが新機能のようですwget2
:
- ローカルサイトマップXMLファイルでのURL検索のサポート(
--force-sitemap -i <filename>
)
wget
サイトマップなしでWebサイトのすべてのURLの単純なリストを生成するには、Webサイトをクロールし、grepなどのツールを使用してwget
出力からURLを抽出できます。
wget --spider -r mywebsite.com 2>&1 \
| rg '^--.+-- (.+)$' --replace '$1' \
| sort -u
Wgetは仕事に最適なツールではありませんが、うまくいきます。