Date 为什么这个特殊的网站在程序解析时会自动格式化日期?

Date 为什么这个特殊的网站在程序解析时会自动格式化日期?,date,io,web-scraping,jsoup,Date,Io,Web Scraping,Jsoup,我正在尝试使用JSOUP1.10.1从网站获取特定链接的列表。以下是一个片段,我已将其与代码的其余部分隔离,以尝试诊断问题: public static void main(String[] args) throws IOException { URL link = new URL("https://www.ncdc.noaa.gov/gibbs/availability/1979-01-01"); Document doc = Jsoup.parse(l

我正在尝试使用JSOUP1.10.1从网站获取特定链接的列表。以下是一个片段,我已将其与代码的其余部分隔离,以尝试诊断问题:

    public static void main(String[] args) throws IOException {
        URL link = new URL("https://www.ncdc.noaa.gov/gibbs/availability/1979-01-01");
        Document doc = Jsoup.parse(link, 600);
        Elements links = doc.select(".availableChannels > a");
        System.out.println(links.get(0));
    }
理论上,这应该打印出所提供URL上
.availableChannels
类下的第一个链接的内容,该URL应该是

但是,Jsoup会自动格式化a href中显示的yyyy-mm-dd日期,因此代码段会打印出
,这是不需要的

如何阻止Jsoup自动格式化日期


更新

我决定用Python2.7编写一个类似的程序,看看如果我从特定的页面(
https://www.ncdc.noaa.gov/gibbs/availability/1979-01-01
)。当我使用python打开并打印页面的源代码时,
中显示的yyyy-mm-dd仍然被格式化为

import urllib

link = "https://www.ncdc.noaa.gov/gibbs/availability/1979-01-01";
f = urllib.urlopen(link);
myfile = f.read();
print myfile;

我想问题是:为什么这个特殊的网站在通过非标准的网络浏览器访问时会自动格式化日期?为了反映这一点,我相应地修改了问题。

这是因为您需要在HTTP请求上设置
Accept Language

Accept Language request HTTP标头播发所选语言 客户端能够理解,并且首选哪种语言环境变量。 使用内容协商,服务器然后选择一个 建议,使用,并通知客户其选择与 内容语言响应头。()

因此,如果您不设置标题,则托管网站的服务器将返回一个变量,该变量不使用您在浏览器中看到的首选本地时间设置

public static void main(String[] args) throws IOException {
    URL link = new URL("https://www.ncdc.noaa.gov/gibbs/availability/1979-01-01");

    Document doc = Jsoup.connect(link.toString())
            .header("Accept-Language", "en-GB").get();
    Elements links = doc.select(".availableChannels > a");
    System.out.println(links.get(0));
}
输出:

我想这不是关于Jsoup的,你试过
卷曲吗。当u
curl
此url时,您将得到相同的内容,格式为
。“你觉得这个怎么样?”ShafinMahmud说,这很有趣。我也不知道“EST”来自哪里,因为我的时区不是EST。