无法通过 php 重定向获取链接

无法通过 php 重定向获取链接

我尝试了所有能找到的技巧,使用 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.

相关内容