【问题标题】:The result is different between what I see in Web browser结果与我在 Web 浏览器中看到的不同
【发布时间】:2023-04-02 02:20:02
【问题描述】:

在解析 Bitmex 网站时,我注意到使用 bs4 解析的结果与我在 Web 浏览器中实际看到的结果略有不同。当我使用 Devtools 并不断刷新时,我意识到我们正在查看的窗口需要一些时间才能打开,并且 BS4 立即获取 html 并且似乎两个结果之间存在差异。

网站网址是“https://www.bitmex.com/app/trade/XBTUSD

您只需检查标签<title>...</title>就可以看到区别。

当我使用 bs4 时,他们给了我结果

<title>BitMEX | Bitcoin Mercantile Exchange</title>

但是当我在 Chrome 中看到它们时,它们会给我结果

<title>▼ 6486.0 (XBTUSD) 거래 - BitMEX</title>

像这样。

如何将我在 Chorme 看到的相同代码带到 Python 中?

当然,使用 selenium,我可以将它们带入 Python....但我想知道没有办法使用 bs4 带入它们。

我的编程知识和能力都不好,问题似乎很奇怪。如果您不能理解我的问题,如果您能再问我一次,我将不胜感激。

感谢您阅读。

【问题讨论】:

标签: python selenium parsing beautifulsoup


【解决方案1】:

同样,有一些 javascript 代码会更改标题。

}, function(e) {
    var t = e || "";
    t !== document.title && (document.title = t)
})(h)

这是该页面中更改标题的 javascript 部分。

由于BeautifulSoup 不运行 javascript,BeautifulSoup 中的标题不会更改 - 它将保留 html 源中的起始标题。浏览器会执行 javascript 并在稍后动态更改它。

【讨论】:

  • 哎呀...对不起。如果我昨天再仔细阅读你的回答,今天就不会问这样的问题,但我没有仔细阅读你的回答是我的错。
  • 其实我对编程不太了解,所以我不知道你昨天在说什么。(即使我不知道动态站点是什么..)我应该有又问了你一个问题,但我没有这样做,让你感到困扰。对不起。
  • @KunC 没问题,希望现在清楚了——现在页面是动态的,有编程代码一直在运行和创建/更改/删除元素。
  • 我明白了。如果我在制作程序时遇到问题,可以请您回答我的问题吗?感谢您的友好回复,祝您有愉快的一天!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多