gpt4 book ai didi

html - 如何使用 Linux 命令行以编程方式从网页中提取信息?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:20:47 25 4
gpt4 key购买 nike

我需要从一长串历史日期中提取美元对另一种货币(比如欧元)的汇率。

www.xe.com 网站提供了历史查询工具,使用详细的 URL,可以获取特定日期的费率表,无需填充 Date: From: 框。例如,网址 http://www.xe.com/currencytables/?from=USD&date=2012-10-15给出了2012年10月15日美元兑其他货币的汇率表。

现在,假设我有一个日期列表,我可以遍历该列表并更改该 URL 的日期部分以获得所需的页面。如果我可以提取汇率列表,那么简单的 grep EUR 就会给我相关的汇率(我可以使用 awk 专门提取汇率)。

问题是,如何使用 Linux 命令行命令获取页面?我试过 wget 但它没有完成任务。

如果不是 CLI,是否有一种简单直接的方法以编程方式执行此操作(即,比将日期复制粘贴到浏览器的地址栏需要更少的时间)?


更新 1:

运行时:

$ wget 'http://www.xe.com/currencytables/?from=USD&date=2012-10-15'

我得到一个文件,其中包含:

<HTML>
<HEAD><TITLE>Autoextraction Prohibited</TITLE></HEAD>
<BODY>
Automated extraction of our content is prohibited. See <A HREF="http://www.xe.com/errors/noautoextract.htm">http://www.xe.com/errors/noautoextract.htm</A>.
</BODY>
</HTML>

所以看起来服务器可以识别查询类型并阻止 wget。有什么办法解决这个问题吗?


更新 2:

在阅读了wget命令的响应和评论/答案后,我检查了网站的服务条款,发现了这个条款:

You agree that you shall not:
...
f. use any automatic or manual process to collect, harvest, gather, or extract
information about other visitors to or users of the Services, or otherwise
systematically extract data or data fields, including without limitation any
financial and/or currency data or e-mail addresses;

我想这就是这方面努力的总结。


现在,出于我的好奇心,如果 wget 生成一个 HTTP 请求,服务器如何知道它是一个命令而不是浏览器请求?

最佳答案

你需要使用-O来编写STDOUT

wget -O- http://www.xe.com/currencytables/?from=USD&date=2012-10-15

但看起来 xe.com 不希望您进行自动下载。我建议不要在 xe.com 上进行自动下载

关于html - 如何使用 Linux 命令行以编程方式从网页中提取信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15105308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com