javascript - 动态生成表时,如何使用 Python BeautifulSoup 对表信息进行 scape?

标签 javascript python beautifulsoup python-requests

我试图在不使用 yahoo 或 nasdaq 的情况下获取 yield 日历信息,因为它们并不总是准确的。

Bloomberg 的网站在以下网址提供 yield 信息: https://www.bloomberg.com/markets/earnings-calendar/us

当我检查页面的 html 源代码时,我找到了控制日期选择日历工具的 html 代码块,并检查了我标记为 EV#1、EV#2、EV#3 的一些事件代码和 EV#4 供引用。

<div data-view-uid="1|0_5_9_1"> <----EV#1
    <div class="date-picker">  <--EV#2
        <input id="datepicker" value="04/10/2018" class="hasDatepicker" type="text"> <--EV#3
        <button type="button" class="ui-datepicker-trigger">button</button> <----EV#4
    </div>
</div>

我发现这些 EV#n 事件中的每一个都引用了一些处理点击事件的 jQuery 代码。

当我在每个 EV#n 的 Web 检查器中突出显示与事件相关的工具箱时,我看到代码描述为 JQuery 或 Bubbling,DOM2。

我不知道这些是什么意思,但也许在这个阶段它不是那么重要。我已经包含了描述以及哪些 EV# 对应于下面的代码。也许有帮助..

JQuery:(EV#1)

tellMeTheSelectedDate: function() {
r.locale(this.locale);
var e = this.$datePicker().datepicker("getDate"),
t = r(e).format("L");
a.log(t)
} 

冒泡,DOM2:(EV#1、EV#2、EV#3、EV#4)

function An(e) {
  if (Gi) {
    var t = Cn(e);
    if (t && this.id == t.id) {
      var n = In(t);
      if (n && kn(e)) {
        var r = Rn(n);
        r.PX263 = d(t), re("PX217", r), ji++, Fi <= ji && (Gi = !1, Dn(!1))
      }
    }
  }
}

冒泡,DOM2:(EV#1,EV#4)

u = b.handle = function(e) {
return typeof d === R || e && d.event.triggered === e.type ? void 
0 : d.event.dispatch.apply(u.elem, arguments)
}

jQuery:(EV#4)

function() {
return e.datepicker._datepickerShowing && 
e.datepicker._lastInput === t[0] ? e.datepicker._hideDatepicker() 
: e.datepicker._datepickerShowing && e.datepicker._lastInput !== 
t[0] ? (e.datepicker._hideDatepicker(), 
e.datepicker._showDatepicker(t[0])) : 
e.datepicker._showDatepicker(t[0]), !1
}

目标:

我没有使用过 JQuery,但我知道它使用 CSS 描述符来动态更改 Web 内容。

我是否可以通过修改日历工具中存储该值的任何变量来使用 Requests 并将“选择的日期”(日期字符串)发送到日期选择小部件,以便页面刷新(这样对吗?)并根据我通过脚本传递的日期在表格中显示收入信息?

我是否需要模拟“点击”事件来让页面更新我的日期?

使用 bs4 从表中获取数据没有问题,但我的主要问题是日期选择。

提前致谢

最佳答案

如果您在浏览器中打开开发人员工具 (F12) 并转到“网络”选项卡,您可以在更改日历上的日期时嗅探出页面发出的请求。这样做时,您可以传入任何您喜欢的日期作为 URL 参数:

https://www.bloomberg.com/markets/api/calendar/earnings/US?locale=en&date=2018-04-30

关于javascript - 动态生成表时,如何使用 Python BeautifulSoup 对表信息进行 scape?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49745973/

相关文章:

javascript - 使用按钮将文本写入输入框

python - Python 程序员资源

python - Beautifulsoup 只返回 100 个元素

javascript - 使用纯 javascript 或 jquery 调整 div 放大缩小

javascript - 结合加载和调整纯 JavaScript

python - 用 numpy 数组中的元组替换整数?

c++ - 在 Python 中扩展的 C++ 类中的段错误回调问题

python - 从页面以及下一页获取 URL

python - BeautifulSoup,简单的正则表达式问题

javascript - 如何使用 jQuery(移动)选择价格范围