【发布时间】:2018-04-10 05:29:04
【问题描述】:
我试图在不使用 yahoo 或 nasdaq 的情况下获取收益日历信息,因为它们并不总是准确的。
Bloomberg 的网站在以下网址提供收益信息: 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 内容。
我是否可以使用请求并将“选择日期”(日期字符串)发送到日期选择小部件,方法是修改日历工具中存储此值的任何变量,以便页面刷新(对吗?)并根据我通过脚本通过的日期在表格中显示收入信息?
我是否需要模拟“点击”事件以使页面更新为我的日期?
使用 bs4 从表中获取数据没有问题,但我的主要问题是日期选择。
提前致谢
【问题讨论】:
标签: javascript python beautifulsoup python-requests