我想要 wget 扫描以下子目录和子子目录:
domain.com/profile/用户名/专辑/
然后从其来源获取每个.jpg 文件。
Wget 应该获取如下文件:
domain.com/profile/用户名/albums/album1/43434
(...)
domain.com/profile/用户名/albums/album6/4343
并从其来源下载每个图像(不幸的是这些图像位于不同的服务器上)。
这可能吗?
我一直在玩 -p -A .jpg 和 -r 1/2/3/4/5,但它抓取了所有内容,例如:
domain.com/profile/anotherusername/albums
domain.com/site/contactus
domain.com/site/anothersite
commercials-for-domain.com/banner/
ETC。
wget -E -H -k -K -p domain.com/profile/username/albums/album1/43434
运行完美但只有一页;我不确定如何“扫描”不同的相册和文件。
我需要这样做,因为我的一个朋友的电脑被盗了,她的所有照片都在这个页面上,其他地方都没有。其中有近 200 张,上面有 div 覆盖,因此很难手动保存它们!
[编辑]
路径树看起来就像这样:
第一级:
domain.com/profile/用户名/专辑/
第二级:
domain.com/profile/username/albums/1,我的生日照片/
domain.com/profile/用户名/albums/2,Photos_From_2011-09-25/
第三级:
domain.com/profile/username/albums/1,我的生日照片/75893989,
domain.com/profile/用户名/albums/2,Photos_From_2011-09-25/74893213,
答案1
好的。2 个相册中的所有照片都已检索到。
至于如何,可以从我的评论和 michail 的评论中确定。
有两张专辑..
http://www.fotka.pl/profil/AlekSanDraa2601/albumy/
一个有 100 张照片,另一个有 63 张照片。
这是有 100 个的 http://www.megaupload.com/?d=30RWXKN9 这是包含 63 首歌曲的专辑 http://www.megaupload.com/?d=CC27NM41
从这里获取源代码,第一张专辑 http://www.fotka.pl/profil/AlekSanDraa2601/albumy/1,Ja/74892555
提取图像 URL 所有缩略图都以 _72_p.jpg 结尾,我们不想要它们,我们想要更大的版本,它们要求在 URL 中将 amin.fotka 更改为 a.fotka,将 _72_p 更改为 _500_s
第二张专辑也是如此。例如,第二张专辑有 63 张照片 http://www.fotka.pl/profil/AlekSanDraa2601/albumy/2,Fotki_z_2011-09-25/75893982,,1319485161
这是 blist3.txt 以 _72_p 格式列出的所有 JPG 列表 http://pastebin.com/raw.php?i=Y2nXfAXT
你可以用这样的方法得到它..
C:\>type source.txt | grep -oE "http://.*?\.jpg" >urls
编辑源代码以删除任何杂项部分..例如 HTML 属性,显然不应该存在的东西。
或者使用这条更好的线路,应该可以得到它们全部而不需要删除任何杂物。
C:\>type source.txt | grep -oE "http://[^ ]*\.jpg" >urls
您的 URL 比您想要的多,对于第二张专辑,该命令给出了 97 个,而您只想要 URL 中带有 _72_p 的 URL
所以 | grep -E“72_p” 这样你就可以得到你想要的照片列表。
C:\>type list.txt | wc -l
63 看到该文件中有 63,正确的数字。
这就是那张专辑里的所有歌曲。全部 63
wget -i 列表.txt -w 3
http://www.megaupload.com/?d=CC27NM41
这就是全部内容了,两张专辑里一共 163 首歌(100+63)。
这是用来获取 JPG 列表的行
listps2.txt 是一个包含所有 JPG 的文件,包括相关和不相关的。相关文件为 72_p 格式,使用 grep 提取相关文件。然后使用 SED 更改它们。将它们放入“thatfile”中,然后您可以执行 wget -i thatfile -w 3。就像我做的那样。
C:\>type listps2.txt | grep "72_p" | sed "s/_72_p/_500_s/" | sed "s/amin\.fotka/a.fotka/" >thatfile
C:\>wget -i thatfile