【问题标题】:Linux, save webcontent as textLinux,将网页内容另存为文本
【发布时间】:2019-03-25 00:47:13
【问题描述】:

我需要一种方法来保存运行 java 的网站中的内容,例如:https://www.betfair.com/exchange/plus/tennis

我需要一个可以执行此操作的函数:Ctrl+A,创建文本文档,Ctrl+V,保存文档。

我知道 wget 和 curl,但我不能让他们完全这样做,有什么帮助吗?

【问题讨论】:

  • 欢迎来到 SO ;) 请在 how to ask a good question 上阅读这篇文章。这将包括对您要实现的目标的正确描述、您的代码(或相关的 sn-ps)以及您的努力,以显示您迄今为止所做的尝试和可能的错误消息。
  • Thx - 实际上我用 Wget 和 Curl 尝试了很多不同的东西,但似乎没有一个能保存我需要的内容。我还没有写任何代码,这是我项目的基本开始。我认为这对于 linux 专家来说“很容易”,所以我认为我不需要在上面写很多话 :)
  • 我已经发布了您的问题的答案 - 如果这能解决您的问题,请告诉我;)
  • 我猜你的意思是一个使用 JavaScript 的网站,而不是一个运行 Java 的网站(或一些网站 服务 由一些 Java 程序)
  • 这正是我的意思!

标签: linux


【解决方案1】:

Ctrl ACtrl V 的提及暗示了clipboard(和/或一些selection)的参与。仅当display server 与一些desktop environment 一起运行时才有意义。情况并非总是如此(例如,许多 Web 服务器在 Linux 下的数据中心中运行并且没有剪贴板;我也可以使用我的 Linux 系统在一些 virtual console 上运行一些 unix shell 而没有任何显示服务器)。

This answer 解释了如何在 shell 脚本中处理剪贴板。调整它以使用 wgetcurl

请参阅xclip(1)wget(1)curl(1) 了解更多信息并巧妙地组合它们,也许在您的 shell 脚本中使用 pipeline

我需要一种方法来保存网站内容

请务必详细了解您的具体案例中涉及的HTTP 交流(请求和回复,以及他们的headers)。你可能需要处理HTTP cookies

您的主要问题可能是在 HTTP client 端(例如在某些现代浏览器中,或模仿它的东西);这需要一种不同的方法。查看Selenium

一些网站还提供web API 以编程方式查询(可能使用JSON 甚至REST)他们的内容。一个很好的例子是github REST API。您需要向目标网站的维护者咨询更多信息。

【讨论】:

  • 好点!我认为只是想使用 wget 或 curl 以类似的行为将内容保存到文件中,例如 Ctrl A、Ctrl C 和 Ctrl V - 为您提供有关该主题的详细信息投票;)
  • 这正是我想要的 :) Ctrl+A、Ctrl+V 只是为了描述我的需求。问题是当我使用 Wget 或 Curl 时,我只得到“后台”,而不是作为玩家或赔率的内容,这正是我所需要的。如果您尝试运行“wget -O test.txt betfair.com/exchange/plus/tennis”,您将看到没有任何赔率或玩家将被保存。这是个大问题:)
【解决方案2】:

如果您想下载某个页面的内容并将其保存到文件中,您可以使用-O file 选项:

 wget "https://www.betfair.com/exchange/plus/tennis" -O tennis.txt 

请注意,在某些系统(CentOS 和其他系统)上,命令行中的参数顺序很重要。

wget -O FILE URL

有效。

wget URL -O FILE

不起作用(至少在 CentOS 上)。

如果您想使用 wget 下载整个网站,您可以执行以下操作:

$ wget \
 --recursive \
 --no-clobber \
 --page-requisites \
 --html-extension \
 --convert-links \
 --restrict-file-names=windows \
 --domains betfair.com \
 --no-parent \
     www.betfair.com/

INFO:如果您想隐藏跟踪信息,您可以使用 '-q'

有关详细信息,请参阅 wget 手册页:

$man wget

【讨论】:

  • 问题是当我使用 Wget 或 Curl 时,我只得到“后台”而不是作为玩家或赔率的内容,这正是我所需要的。如果您尝试运行“wget -O test.txt betfair.com/exchange/plus/tennis”,您将看到没有任何赔率或球员将被保存。这是个大问题:)
  • 这里最大的问题是内容是由javascript生成的,而我使用wget的时候,没有生成内容。至少这是我迄今为止发现的:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 2011-10-27
  • 2011-05-07
相关资源
最近更新 更多