我被要求使用wget
下载保存在文件中的多个URL并将它们存储在另一个文件夹中。所以我使用了这个命令:
wget -E -i url.txt -P ~/Desktop/ProjectM2/data/crawl
但问题1,文件必须命名如下:
1.html
2.html
3.html
..
我尝试过曼尼的东西,但我还是做不到。
问题2我不知道如何使用从html2txt -utf8
到.html
的.txt
在一个命令中更改所有这些文件并保留数字
1.txt
2.txt
3.txt
..
谢谢
如果在你的情况下url.txt
中的网址顺序很重要,也就是说,1.html
应该包含第一个网址的数据,那么2.html
应该对应于第二个网址,依此类推,然后你可以逐个处理网址。
以下脚本为每个URL采取所需的操作:
#!/bin/bash
infile="$1"
dest_dir="~/Desktop/ProjectM2/data/crawl"
# create html and txt dir inside dest_dir
mkdir -p "$dest_dir"/{html,txt}
c=1
while IFS='' read -r url || [[ -n "$url" ]]; do
echo "Fetch $url into $c.html"
wget -q -O "$dest_dir"/html/$c.html "$url"
echo "Convert $c.html to $c.txt"
html2text -o "$dest_dir"/txt/$c.txt "$dest_dir"/html/$c.html
c=$(( c + 1 ))
done < "$infile"
该脚本记录了一个输入文件,在本例中为url.txt
。它在目标目录html
下创建了两个目录(txt
,~/Desktop/ProjectM2/data/crawl
),以便更好地组织生成的文件。我们在一个while循环(url.txt
)的帮助下逐行读取文件Read file line by line中的url。使用wget
,您可以使用-O
选项指定所需的输出文件名,因此您可以根据需要命名文件,在您的情况下是序列号。 -q
选项用于从命令行中删除wget消息。在html2text
中,您可以使用-o
指定输出文件。