我试图通过使用Selenium库进行web抓取来从这个图(https://www.mtgprice.com/sets/Ravnica_Allegiance/Breeding_Pool)中提取数据。
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.mtgprice.com/sets/Ravnica_Allegiance/Breeding_Pool')
我找到的唯一引用是在Java脚本代码中:(https://www.mtgprice.com/taneLayout/js/Charts.js)(https://www.mtgprice.com/taneLayout/js/demos/charts/line.js)。
$(function () {
var d1 = [3.0, 3.0, 4.2, 4.4, 1.3, 2.9, 2.8, 1.9, 2.1, 3.4, 6.8, 8.1, 7.5, 7.1, 7.5, 9.5, 12.1, 12.4, 10.9, 10.4, 10.9, 9.1, 9.4, 10.5],
d2 = [ 0.6, 1.2, 1.7, 0.7, 2.9, 4.1, 2.6, 3.7, 3.9, 1.7, 2.3, 3.0, 3.3, 4.8, 5.0, 4.8, 5.0, 3.2, 2.0, 2.4, 2.7, 3.5, 3.2, 2.8];
var dt1 = [],
dt2 = [],
st = new Date(2012, 8, 6).getTime();
for( var i = 0; i < d2.length; i++ ) {
dt1.push([st + i * 3600000, parseFloat( (d1[i]).toFixed( 3 ) )]);
dt2.push([st + i * 3600000, parseFloat( (d2[i]).toFixed( 3 ) )]);
}
var data = [{
data: dt1,
label: 'Revenue'
}, {
data: dt2,
label: 'Expenses',
points: { show: false },
lines: { lineWidth: 2, fill: false }
}];
Charts.line ( '#line-chart', data);
});
我想得到一个表或与日期和价格,从不同的卖家,你可以从屏幕的右侧选择的相框。
谢谢你的帮助
1条答案
按热度按时间kxe2p93d1#
您可以在Developer Console中看到包含图表中所有数据的JS对象。打开控制台并输入“结果”。
使用
driver.execute_script
获取该对象。价格与unix时间戳相关联。将其转换为
datetime
: