我尝试了所有能找到的技巧,使用 wget 和 curl 从终端下载此链接:
http://libgen.gs/ads.php?md5=5C757EA95B47CEAB5065B26EEB55896A
没有人能成功获取 epub 书籍,我只需在浏览器中打开链接时单击“获取”按钮即可下载。我宁愿使用控制台下载它,这样做可行吗?
答案1
@mondotofu 接近正确答案。
您的问题不是 PHP 重定向。您需要递归。您提供的链接会产生一个静态 HTML 页面,其中包含指向实际内容的另一个链接。为了获取内容,您需要手动跟踪链接。或者使用 Wget 的递归选项自动执行此操作。
mondotofu 最忽略的一点是使用--content-disposition
来让 Wget 使用服务器提供的名称,这样就可以得到正确的文件名,而不需要使用mv
答案2
答案是打开你收到的链接。你可能会注意到网页顶部有“GET”字样
在该链接上使用 wget。
wget "http://111.90.145.72/get.php?md5=5c757ea95b47ceab5065b26eeb55896a&key=FIS7AXJH8YP1OC66"
它会将其放在您当前的目录中。您要做的最后一件事是重命名该文件。
mv 'get.php?md5=5c757ea95b47ceab5065b26eeb55896a&key=FIS7AXJH8YP1OC66' random.epub
然后您可以在电子书阅读器中打开您的 epub 文件。
答案3
curl
使用而不是可能会更幸运,并使用开关、和wget
将其设置为遵循重定向。-L
-J
-O
curl -O -J -L http://libgen.gs/ads.php?md5=5C757EA95B47CEAB5065B26EEB55896A
关于这些开关的一些信息来自文档:
-O/--remote-name
Write output to a local file named like the remote file we get.
(Only the file part of the remote file is used, the path is cut off.)
-L/--location
(HTTP/HTTPS) If the server reports that the requested page has moved
to a different location (indicated with a Location: header and a 3XX
response code), this option will make curl redo the request on the new
place. If used together with -i/--include or -I/--head, headers from
all requested pages will be shown. When authentication is used, curl only
sends its credentials to the initial host. If a redirect takes curl to a
different host, it won't be able to intercept the user+password.
See also --location-trusted on how to change this. You can limit the
amount of redirects to follow by using the --max-redirs option.
-J/--remote-header-name
(HTTP) This option tells the -O/--remote-name option to use the
server-specified Content-Disposition filename instead of extracting a
filename from the URL.