いくつかのhtmlファイルリンクを含むtxtファイルがあります。このtxtの各リンクにアクセスし、その中にあるリンクを取得して、別のtxtファイルに保存する必要があります。
Linuxターミナル/シェルスクリプト/ Pythonでこれを行うにはどうすればよいですか?
lynx
をインストールしてから、次の手順を実行します。
lynx -listonly -nonumbers -dump input.html > links.txt
入力ファイルの拡張子が.html
であることを確認してください。
例えば:
$ cat test.html
<a href="http://superuser.com">test</a>
http://google.com
$ lynx -listonly -nonumbers -dump test.html
http://superuser.com/
代わりに、リンクを取得する必要のあるHTMLファイルを指すテキストファイルがある場合は、それを繰り返すことができます。
while read -r file; do
lynx -listonly -nonumbers -dump "$file" > "${file%.*}.txt
done < input.txt
これにより、テキストファイルのすべての行が読み取られ、lynxを使用してリンクが抽出され、それらが指すHTMLファイルと同じベース名で.txtファイルに書き込まれます。
質問を2つの部分に切ります。
ターゲットページにログインや資格情報は必要ないと仮定します。
LinuxまたはUnixマシンで実行するか、Windowsでは Cygwin ターミナルセッションで実行します
wget -i your.txt
次に、ダウンロードしたファイルごとに、
cat FILE | \
sed 's/href=/\nhref=/g' | \
grep href=\" | \
sed 's/.*href="//g;s/".*//g' >> out.txt
何かが足りない場合は、実行します
Sudo apt-get install coreutils wget grep sed
ほとんどのシステムにはデフォルトで付属しているにもかかわらず、DebianLinuxでは。
Cygwinセッションでこれを行うことを選択した場合は、インストール時にCore Utilities
、Wget
、grep
、およびsed
を選択することを忘れないでください。