Requests.get结果中的时区支持

1 投票
2 回答
2850 浏览
提问于 2025-04-18 17:13

我正在用Python抓取一个简单的网页。当我用Chrome查看这个网页时,我看到:

8/13 下午2:20 - 这是我所在时区的正确时间

在其中一个日期字符串中(返回的是字符串格式)

我使用requests.get(用urllib2也是一样的结果),调用如下:

thepage = requests.get('http://fakepage.com')

当我把所有内容解码后,我得到的是:

8/13 下午4:20 - 因为时间正好差了两个小时,我猜是服务器在检测我的时区。

有没有办法在requests.get的调用中发送我的时区?或者我可能理解错了什么。

2 个回答

-2

解决了 - 我在请求中有一个字符的拼写错误,这导致在Chrome和request.get之间返回的HTML内容完全一样,唯一不同的就是时间。

感谢大家的帮助。

0

不,你的浏览器在发送请求的时候并不会带上任何时间信息。所以服务器无法根据这个信息来调整发送的HTML的时区。

你看到的情况通常是通过JavaScript来实现的;比如可以参考一下如何从浏览器获取客户端时区。实际上是你的浏览器执行了代码,把页面上的日期时间转换成了你本地的时区,而不是服务器来做这个。

这样做也更高效;服务器只需要给每个客户端发送一个版本的HTML页面,这样更容易缓存。

撰写回答