AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 32403
In Process
Mike Hordecki
Mike Hordecki
Asked: 2009-06-27 11:18:32 +0800 CST2009-06-27 11:18:32 +0800 CST 2009-06-27 11:18:32 +0800 CST

wget 和漂亮的网址

  • 772

为了使东西自动化,我需要递归下载一个网页。我正在使用 wget,因为它可能是对程序员最友好的工具,它使用 -r 标志来触发链接跟踪。

wget,hovewer,不处理漂亮的网址,即http://webpage/index.php/my/pretty/link,将它们视为子目录。

这个问题有解决方案吗?(我宁愿不修改该网页的源代码)

干杯,MH

编辑:问题已解决

感谢您富有洞察力的回复!

我已经设法解决了这个问题——不过,通过对提到的网页进行微小的修改。

我所做的很简单:我使用了服务器的 url 重写功能并将 url 从http://webpage/my/pretty/link重定向到http://webpage/index.php/my/pretty/link。然后,使用以下 wget 标志:

wget --mirror --page-requisites --html-extension --convert-links http://webpage/

瞧!这一切都完美无缺(在此过程中仍然创建了目录,但是从这一点开始使用某种脚本来处理它是微不足道的)。

wget
  • 4 4 个回答
  • 1828 Views

4 个回答

  • Voted
  1. kubanczyk
    2009-06-27T11:28:45+08:002009-06-27T11:28:45+08:00

    那么,wget 应该如何知道 index.php/my/pretty 实际上不是目录?从 HTTP 客户端的角度来看,这一点都不明显。

    也许你可以wget --exclude-directories解决这个问题?或者 check wget -nd,它将创建一组平面文件(不是目录树)。检查这些。

    • 3
  2. Zenham
    2009-06-27T11:35:54+08:002009-06-27T11:35:54+08:00

    漂亮的 URL 通常不是独立的,它们更频繁地使用一种机制来来回传递数据(通常通过 POST 或 cookie)到后端基于 MVC 框架的应用程序。

    如果您使用多个 wget 调用,值得注意的是 wget 使用 cookie,但默认情况下不保存它们......这意味着每个 wget 都将从一个新的 cookie 开始,并且不会有可用的状态信息. --save-cookies(文件名)和 --load-cookies(文件名)选项将帮助您。

    如果 Web 应用程序使用 POST 作为机制,我猜您可能必须编写一个针对该站点量身定制的特定爬虫。

    • 1
  3. TimSchwarz
    2009-06-27T13:04:07+08:002009-06-27T13:04:07+08:00

    也许您可以将 Firefox 与 iMacros 插件一起使用而不是 wget?它具有命令行支持,但不能自动跟踪链接(您需要编写脚本)。

    http://wiki.imacros.net/iMacros_for_Firefox#Command_Line_Support

    我每天用它下载各种报告。

    • 1
  4. Rodent43
    2009-06-27T11:34:33+08:002009-06-27T11:34:33+08:00

    如果您多次访问同一个站点,那么您可以考虑使用 alias 命令,您可以使用友好名称创建别名以使用完整路径名 wget

    alias mywget='wget http://domain.com/file/?search&channel=24'
    

    显然添加您需要的任何开关,然后您的窥视者可以运行 mywget 来执行该功能

    虽然我不确定一旦它点击 & 会发生什么,因为你通常会在它的引号中加上这样的网址

    希望有帮助

    • -1

相关问题

  • 使用 wget 安装 make

  • wget 中的 --reject 功能似乎不起作用

  • 如何将下载的文件通过管道传输到 bash 中的标准输出?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve