Http 获取web服务器上的文件列表
全部, 我想得到一个完整的url在tact服务器的文件列表。例如,我想从这里得到所有的TIFF * 我可以用wget下载所有的.tif文件,但我要找的只是像这样的每个文件的完整url http://hyperquad.telascience.org/naipsource/Texas/20100801/naip10_1m_2597_04_3_20100424.tif http://hyperquad.telascience.org/naipsource/Texas/20100801/naip10_1m_2597_05_1_20100430.tif 关于如何使用curl或wget之类的工具将所有这些文件放入列表,您有什么想法吗Http 获取web服务器上的文件列表,http,curl,wget,Http,Curl,Wget,全部, 我想得到一个完整的url在tact服务器的文件列表。例如,我想从这里得到所有的TIFF * 我可以用wget下载所有的.tif文件,但我要找的只是像这样的每个文件的完整url http://hyperquad.telascience.org/naipsource/Texas/20100801/naip10_1m_2597_04_3_20100424.tif http://hyperquad.telascience.org/naipsource/Texas/20100801/naip10
Adam您需要服务器愿意为您提供一个包含列表的页面。这通常是一个index.html或只是请求目录
http://hyperquad.telascience.org/naipsource/Texas/20100801/
在这种情况下,看起来您很幸运,因此,冒着让网站管理员不安的风险,解决方案是使用wget的递归选项。指定最大递归为1,以将其约束到单个目录。如果您
wgethttp://hyperquad.telascience.org/naipsource/Texas/20100801/
,返回的HTML包含文件列表。如果您不需要这样做,那么可以使用正则表达式来提取链接。如果您需要更强大的功能,可以使用HTML解析器(例如),并通过编程方式(从实际的HTML结构)提取页面上的链接。我将使用lynx
shell web浏览器获取链接列表+grep
和awk
shell工具来过滤结果,如下所示:
http://hyperquad.telascience.org/naipsource/Texas/20100801/
lynx -dump -listonly <URL> | grep http | grep <regexp> | awk '{print $2}'
…现在返回:
http://hyperquad.telascience.org/naipsource/Texas/20100801/naip10_1m_2597_04_2_20100430.tif
http://hyperquad.telascience.org/naipsource/Texas/20100801/naip10_1m_2597_04_4_20100430.tif
http://hyperquad.telascience.org/naipsource/Texas/20100801/naip10_1m_2597_05_2_20100430.tif
使用winscp,有一个查找窗口,可以从自己网站的目录中搜索目录和子目录中的所有文件-可能后,选择全部并复制,文本中有指向所有文件的所有链接-需要有用于连接ftp的用户名和密码:
我有一个客户端-服务器系统,它从应用服务器文件夹中指定的文件夹中检索文件名,然后在客户端显示缩略图。 客户端:(slThumbnailNames是一个字符串列表) ==在服务器端=== TIDCmdTCPServer具有CommandHandler GetThumbnailNames(CommandHandler是一个过程) 提示:sMFFBServerPictures是在应用服务器的oncreate方法中生成的。 sThumbnailDir从客户端传递到应用服务器
`slThumbnailNames := funGetThumbnailNames(sThumbNailPath);
function TfMFFBClient.funGetThumbnailNames(sThumbnailPath:string):TStringList;
var
slThisStringList:TStringList;
begin
slThisStringList := TStringList.Create;
dmMFFBClient.tcpMFFBClient.SendCmd('GetThumbnailNames,' + sThumbnailPath,700);
dmMFFBClient.tcpMFFBClient.IOHandler.Capture(slThisStringList);
result := slThisStringList;
end;
procedure TfMFFBServer.MFFBCmdTCPServercmdGetThumbnailNames(
ASender: TIdCommand);
var
sRec:TSearchRec;
sThumbnailDir:string;
i,iNumFiles: Integer;
begin
try
ASender.Response.Clear;
sThumbnailDir := ASender.Params[0];
iNumFiles := FindFirst(sMFFBServerPictures + sThumbnailDir + '*_t.jpg', faAnyfile, SRec );
if iNumFiles = 0 then
try
ASender.Response.Add(SRec.Name);
while iNumFiles = 0 do
begin
if (SRec.Attr and faDirectory <> faDirectory) then
ASender.Response.Add(SRec.Name);
iNumFiles := FindNext(SRec);
end;
finally
FindClose(SRec)
end
else
ASender.Response.Add('NO THUMBNAILS');
except
on e:exception do
begin
messagedlg('Error in procedure TfMFFBServer.MFFBCmdTCPServercmdGetThumbnailNames'+#13+
'Error msg: ' + e.Message,mterror,[mbok],0);
end;
end;
end;`
`slThumbnailNames:=funGetThumbnailNames(sThumbNailPath);
函数TfMFFBClient.funGetThumbnailNames(sThumbnailPath:string):TStringList;
变量
slThisStringList:TStringList;
开始
slThisStringList:=TStringList.Create;
dmMFFBClient.tcpMFFBClient.SendCmd('GetThumbnailNames',+sThumbnailPath,700);
dmMFFBClient.tcpMFFBClient.IOHandler.Capture(slThisStringList);
结果:=slThisStringList;
结束;
过程TfMFFBServer.MFFBCmdTCPServercmdGetThumbnailNames(
ASender:tid命令);
变量
sRec:TSearchRec;
sThumbnailDir:字符串;
i、 iNumFiles:整数;
开始
尝试
ASender.Response.Clear;
sThumbnailDir:=ASender.Params[0];
iNumFiles:=FindFirst(sMFFBServerPictures+sthumnaildir+'*_t.jpg',faAnyfile,SRec);
如果iNumFiles=0,则
尝试
ASender.Response.Add(SRec.Name);
而iNumFiles=0 do
开始
如果(SRec.Attr和faDirectory faDirectory),则
ASender.Response.Add(SRec.Name);
iNumFiles:=FindNext(SRec);
结束;
最后
FindClose(SRec)
结束
其他的
ASender.Response.Add('没有缩略图');
除了
关于e:exception-do
开始
messagedlg('过程TfMFFBServer.MFFBCmdTCPServercmdGetThumbnailNames'中出错+#13+
'错误消息:'+e.消息,mterror,[mbok],0);
结束;
结束;
结束`
但这将下载文件…我只想在列表中找到这些文件的url引用。你有什么想法?我看错了。最简单的方法是从wget解析结果。Wget似乎拥有您所需要的一切,比如在TIFF上进行过滤,而不是实际获取文件。你们有什么工具/平台?对于该特定站点,可以使用PERL或SED拉出tif,查找模式href=“(.\.tif)”其中()是分组运算符,以选择所需的结果。