【问题标题】:Snatch a daily comic and store it locally抓取每日漫画并将其存储在本地
【发布时间】:2011-03-02 17:30:50
【问题描述】:

我想从 www.explosm.net/comics 复制每日漫画并存储在本地文件夹中。

漫画具有唯一的名称,并根据创作者的不同存储在多个位置。

像这样:

  • www.explosm.net/db/files/Comics/Rob/comic1.png
  • www.explosm.net/db/files/Comics/Dave/comic2.png

但是,每个每日漫画都可以通过相同的网址 www.explosm.net/comics 获得,该网址会将您重定向到最新的漫画。不过,不确定这是否有用。

我对 wget 命令和 cron 一起使用来实现这一点有一些经验,但是我缺乏知识并没有给我带来任何令人满意的结果。

提前致谢。

【问题讨论】:

    标签: ubuntu scheduled-tasks wget copying


    【解决方案1】:

    您可能想查看cURL。您需要的是一个脚本,该脚本在您请求 www.explosm.net/comics 时调用 cURL 以获取服务器提供的页面源。然后,您将解析返回的数据以查找显示漫画的 img 标记。

    在获得相关img 标记的src 属性后,您可以使用cURL 发出另一个请求以实际下载图像并将返回的数据保存到本地文件中。

    您要查找的实际漫画图像的来源似乎以http://www.explosm.net/db/files/Comics 开头,因此您可以使用如下正则表达式来确定您要下载的图像的 URL。

    src\=\"(http:\/\/www\.explosm\.net\/db\/files\/Comics\/[^"]*)\"
    

    URL 将成为匹配项中的第一组。

    【讨论】:

    • 好的。我试过研究 cURL,但乍一看,它似乎超出了我的想象。我可以补充一点,我对 linux 还很陌生。不过,如果我设法提取您所指的内容,那可能正是我正在寻找的内容。
    • 嗯,你懂编程吗?
    • 抱歉回答晚了。是的,我有一些(HTML/CSS/PHP,我有点知道正则表达式是如何工作的)。正如我们所说,试图扩展我的 linux'。不过,我总是乐于接受新事物——这就是我想尝试这个的原因。我真的不知道从哪里开始。
    • 更新:弄清楚如何使用 curl。但是,当我尝试抢夺explosm.net/comics(也尝试过漫画/新/)时,它不起作用。但是,如果我尝试抢夺explosm.net/comics/2343(最新的漫画),它会起作用。我怎样才能始终确保我抢到了最新的页面?
    • @habitats,首先,如果你懂一点PHP,你可以使用PHP bindings for cURL并创建一个php脚本来完成你想要的。然后,您可以create a daily cron job 每天调用您的 php 脚本以获取最新的漫画。至于某些 URL 不起作用的原因可能是因为那些不起作用的是重定向,而您没有指定 cURL 的选项以跟随重定向。见CURLOPT_FOLLOWLOCATION
    猜你喜欢
    • 1970-01-01
    • 2014-04-01
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2011-01-14
    相关资源
    最近更新 更多