首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何获取wget下载的文件的文件名

如何获取wget下载的文件的文件名
EN

Stack Overflow用户
提问于 2015-04-11 05:31:04
回答 2查看 3K关注 0票数 5

我正在使用os.system('wget '+ link)从网站中检索文件。下载后,我想进一步处理这些文件的基础上的源链接。

大多数链接都是这种形式的htttp://example.com/.../filename.zip

在这种情况下,文件被简单地下载为filename.zip。我可以使用basename和RegExp [^/]+$从链接中提取这一点。

但问题是表格的链接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://http://www.ez-robot.com
http://www.worldscientific.com/
http://www.fairweld.com

这些链接被下载为index.htmlindex.html.1index.html.2 ans等。

在这里,我无法区分哪个index文件属于哪个网站。我可以这样做的一种方法是查看链接被传递到wget的顺序。

我想要一些通用的方法来获得“真实的”文件名,通过它在计算机中下载文件。当wget完成执行时,它会在终端上显示一个Saving to:标签,后面跟着“真实”文件名。我想把那个文件名存储在一个字符串中。

是否有任何直接/更简单的方法来获取文件名?我用的是Python。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ wget http://www.fairweld.com
--2015-04-11 18:51:48--  http://www.fairweld.com/
Connecting to 202.142.81.24:3124... connected.
Proxy request sent, awaiting response... 200 OK
Length: 39979 (39K) [text/html]
Saving to: ‘index.html.4
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-11 06:37:30

使用os.path.basename并获取名称取决于url的结束方式,您还可以使用请求下载html:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
links = ["http://www.ez-robot.com",
"http://www.worldscientific.com/",
"http://www.fairweld.com"]


import urlparse
import requests
import os
for link in links:
    r = requests.get(link)
    if link.rsrip("/").endswith(".com"):
        name = os.path.basename(link)
    else:
        name = urlparse.urlsplit(link.path.split("/")[-1])
    with open("{}.html".format(name),"w") as f:
        f.write(r.content)
票数 2
EN

Stack Overflow用户

发布于 2015-04-11 05:53:14

发生问题的原因是文件名已经存在。我建议下载每一个“文件”到一个新的文件夹(即域名),以防止重复。

$ wget --directory-prefix=$DOMAIN $URL

这将保留数据头中指定的原始文件名。

还有一个提示,您使用的是os.system('wget '+ link),它可能非常不安全,因为您在这里没有净化您的输入。输入可能会受到注入的影响,这会使您的系统运行不必要的命令。阅读有关鲍比桌的更多信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29578439

复制
相关文章
局部变量错误
UnboundLocalError: local variable 'xxx' referenced before assignment
狼啸风云
2020/06/08
1.4K0
变量作用域经典错误
这段代码中X = X + Y,python是无法识别左边的X是局部变量,右边的X是全局变量的。 同样,我们使用C++来实现上面python代码的相同操作,如下:
zy010101
2022/01/10
2810
Python变量引用错误
虽然定义了变量n,然后在函数内部修改,但是还是报相同的错误。原因在于在函数内部对变量n进行修改后,变量n被python解释器理解为局部变量,就变成和上面代码一样的情况了。
狼啸风云
2020/07/06
1.3K0
实时错误 '91' :对象变量或with块变量未设置
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/9672911
DannyHoo
2018/09/13
4.1K0
实时错误 '91' :对象变量或with块变量未设置
实时错误 ‘91‘ :对象变量或with块变量未设置
最多的应该就是这个问题了,“实时错误‘91’:对象变量或with块变量未设置”。如右图:
DannyHoo
2022/05/09
2.3K0
实时错误 ‘91‘ :对象变量或with块变量未设置
openjpeg:解决静态链接时未定义引用错误:undefined reference to `__imp_opj_xxxxxxx'
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/50598753
10km
2019/05/25
4.6K0
openjpeg:解决静态链接时未定义引用错误:undefined reference to `__imp_opj_xxxxxxx'
完美解决丨#在python中,如果引用的变量未定义,则会报告NameError: name ‘变量名‘ is not defined。
在python中,如果引用的变量未定义,则会报告NameError: name '变量名' is not defined。
不吃西红柿
2023/04/21
2.9K0
C/C++未定义行为
下面是一段代码,这段代码中有标准未定义的行为。代码如下: #include<iostream> using namespace std; int main() { int j = 0;
zy010101
2020/04/16
3.7K0
关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法
在本问题提供解决办法前,整个过程先引入一个实例可以更好地说明这个问题: 例:从键盘输入一个4位数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。 解: 函数文件:
荣仔_最靓的仔
2021/02/02
12.3K0
关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法
再也不用担心变量类型错误!学会JS中如何轻松检查变量类型
如果判断的是基本数据类型或JavaScript内置对象,使用toString;如果要判断的是自定义类型,请使用instanceof。
程序视点
2023/06/13
4120
再也不用担心变量类型错误!学会JS中如何轻松检查变量类型
DS-5/RVDS4.0变量初始化错误
最近总是有各种调试时的错误,内存错误一般,我无意中发现的所有全局变量失败,也就是说,全局变量声明之后,颂值早期值误.
全栈程序员站长
2022/07/06
3850
DS-5/RVDS4.0变量初始化错误
解决调用未定义 swoole_async_readfile函数问题
https://github.com/swoole/swoole-src/issues/2439
全栈程序员站长
2022/07/11
4K0
解决调用未定义 swoole_async_readfile函数问题
c++使用了未定义类型_c++如何新建
第一个参数是一个指向SECURITY_ATTRIBUTES结构体的指针,一般的情况下,可以是nullptr。
全栈程序员站长
2022/11/09
2.7K0
GDB读取动态库中定义的全局变量错误
最近看了一篇getopt使用的文章,为了追踪其执行的逻辑,于是采用GDB挂载调试的方式进行查看。但却出现了GDB打印全局变量optind的时候出现错误。
河边一枝柳
2021/08/06
2.1K0
IE11出现"__doPostBack”未定义
  系统做迁移,在新服务器IIS上部署,部署后的系统在IE8和其他浏览器上显示正常,
_一级菜鸟
2020/07/22
2.6K0
ubuntu gcc编译时对’xxxx’未定义的引用问题
http://www.cnblogs.com/oloroso/p/4688426.html
bear_fish
2018/09/19
8.2K0
优雅地创建未定义类PHP对象
在PHP中,如果没有事先准备好类,需要创建一个未定义类的对象,我们可以采用下面三种方式:
硬核项目经理
2019/11/21
2.8K0
Array find方法在UC浏览器未定义
今天发现用UC浏览器访问一个项目出现bug,后来检查出来原来UC浏览器并没有find方法(但它有filter方法),所以写了以下垫片。。。
javascript.shop
2019/09/04
2.7K0
点击加载更多

相似问题

RoR - Model.all,但没有created_at和updated_at字段

30

插入未保存的created_at、updated_at列

50

不自动将created_at和updated_at插入到不工作的laravel中

26

updated_at和created_at字段在使用InserGetId函数插入集合时不会自动插入?

11

添加默认值与created_at相同的updated_at列

110
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文