While working on finding how data is being processed on the webpage. I was figuring out this site investorscout.co/investors.
I tried looking at the Network tab to see how they are rendering the data from backend onto the page. I have also looked into WS but no luck.
I am confused as to how the site is able to display the data while none of the requests in the Network tab shows that.
I aim to fetch the data using requests and bs4.
Sending a GET request to the page https://investorscout.co/investors returns a response with multiple references to external JavaScript code in it. This is what is being loaded on the page - dynamic content based on JavaScript functions.
I would suggest an implementation involving selenium instead as you would not be able to scrape content on the page otherwise.
HTML code of page for reference:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width,initial-scale=1,shrink-to-fit=no"
/>
<meta name="theme-color" content="#000000" />
<link rel="manifest" href="/manifest.json" />
<link rel="”shortcut" icon” href="”/favicon.ico”" />
<title>Investor Scout</title>
<script>
!function(n,u){n._rwq=u,n[u]=n[u]||function(){(n[u].q=n[u].q||[]).push(arguments)}}(window,"rewardful")
</script>
<script
async
src="https://r.wdfl.co/rw.js"
data-rewardful="76b542"
></script>
<script type="text/javascript">
var _iub=_iub||[];_iub.csConfiguration={consentOnContinuedBrowsing:!1,ccpaAcknowledgeOnDisplay:!0,whitelabel:!1,lang:"en",siteId:2020596,enableCcpa:!0,countryDetection:!0,cookiePolicyId:26558236,banner:{acceptButtonDisplay:!0,customizeButtonDisplay:!0,acceptButtonColor:"#0073CE",acceptButtonCaptionColor:"white",customizeButtonColor:"#DADADA",customizeButtonCaptionColor:"#4D4D4D",rejectButtonColor:"#0073CE",rejectButtonCaptionColor:"white",position:"float-top-center",textColor:"black",backgroundColor:"white"}}
</script>
<script
type="text/javascript"
src="//cdn.iubenda.com/cs/ccpa/stub.js"
></script>
<script
type="text/javascript"
src="//cdn.iubenda.com/cs/iubenda_cs.js"
charset="UTF-8"
async
></script>
<script
defer="defer"
src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"
></script>
<script type="text/javascript">
window.__lo_site_id=176375,function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://d10lpsik1i8c69.cloudfront.net/w.js";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}()
</script>
<script type="text/javascript">
window.$crisp=[],window.CRISP_WEBSITE_ID="95efad36-fefd-4cf1-ae4b-a3bb5a61360c",d=document,s=d.createElement("script"),s.src="https://client.crisp.chat/l.js",s.async=1,d.getElementsByTagName("head")[0].appendChild(s)
</script>
<link href="/static/css/main.fc05b0f9.chunk.css" rel="stylesheet" />
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script>
!function(e){function t(t){for(var n,i,l=t[0],f=t[1],a=t[2],p=0,s=[];p<l.length;p++)i=l[p],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(c&&c(t);s.length;)s.shift()();return u.push.apply(u,a||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,l=1;l<r.length;l++){var f=r[l];0!==o[f]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/";var l=this["webpackJsonpinvestor-scout"]=this["webpackJsonpinvestor-scout"]||[],f=l.push.bind(l);l.push=t,l=l.slice();for(var a=0;a<l.length;a++)t(l[a]);var c=f;r()}([])
</script>
<script src="/static/js/2.540fc93a.chunk.js"></script>
<script src="/static/js/main.9ac00620.chunk.js"></script>
</body>
</html>
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
import os
Game_Pin = input('Enter your PIN: ')
NickNAME = input('Enter your nickname: ')
driver = webdriver.Chrome(executable_path=r"C:\WebDriver\bin\chromedriver.exe")
def Enter_Press(driver):
driver.find_element_by_xpath("//*[contains(text(), 'Enter')]").click()
def OK_GO(driver):
driver.find_element_by_xpath("//*[contains(text(), 'OK, go!')]").click()
def Kahoot_Spammer(Game_Pin, NickNAME, driver):
driver.get('https://kahoot.it/')
driver.maximize_window() #For maximizing window
driver.implicitly_wait(2) #gives an implicit wait for 2 seconds
game_pin = driver.find_element_by_xpath("//*[#id='inputSession']")
game_pin.send_keys(Game_Pin)
Enter_Press(driver)
driver.implicitly_wait(2)
Name = driver.find_element_by_xpath("//*[#id='username']")
Name.send_keys(NickNAME)
OK_GO(driver)
Kahoot_Spammer(Game_Pin, NickNAME, driver)
This is the code. Its supposed to open a chrome browser and navigate to the Kahoot.it website. Then take what information you gave it and put it in for you. It works for the first part of entering a game but once it gets to create your nickname it cannot detect the OK, go! button.
driver.find_element_by_xpath("//*[contains(text(), 'OK, go!')]").click()
I've inspected the button but cannot seem to find what to put within the code above. Any ideas?
Here is the source code.
<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if IE 9]> <html class="no-js lt-ie10" lang="en"> <![endif]-->
<!--[if gt IE 9]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Kahoot!</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, minimum-scale=1.0"/>
<meta name="viewport" content="initial-scale=1, maximum-scale=1.0, minimum-scale=1.0" media="(device-height: 568px)"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-itunes-app" content="app-id=1131203560">
<meta name="description" content="Join a game of kahoot here. Kahoot! is a free game-based learning platform that makes it fun to learn – any subject, in any language, on any device, for all ages!">
<meta name="keywords" content="education, platform, smart phone, tablet, mobile, social, inclusive, HTML5, classroom, engagement, play, game, fun, quiz, multi-player, pedagogy, learning model, learn, gamification." />
<link rel="shortcut icon" href="/shared/theme/kahoot/img/icons/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/shared/theme/kahoot/img/icons/touch_icon_144.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="/shared/theme/kahoot/img/icons/touch_icon_114.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="/shared/theme/kahoot/img/icons/touch_icon_72.png">
<link rel="apple-touch-icon-precomposed" href="/shared/theme/kahoot/img/icons/touch_icon_57.png">
<link rel="stylesheet" type="text/css" href="/shared/css/cloak.css">
<div style="height: 0; width: 0; position: absolute; visibility: hidden">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><filter x="-2.2%" y="-2.3%" width="104.4%" height="104.8%" filterUnits="objectBoundingBox" id="a"><feOffset dy="1" in="SourceAlpha" result="shadowOffsetOuter1"/><symbol id="logo-shapes" viewBox="0 0 24 24"><ellipse cx="5.506" cy="18.966" rx="4.953" ry="4.953"/><path d="M12.005 5.902L17.873.033l5.869 5.869-5.869 5.868zm1.443 8.899h8.849v8.849h-8.849zm-2.584-4.977H.146l5.36-8.555z"/></symbol></svg>
</div>
<script src="https://tap-nexus.appspot.com/js/sdk/kahunaAPI_min.js"></script>
<script type="text/javascript">
(function(e,t){var n=e.amplitude||{_q:[],_iq:{}};var r=t.createElement("script");r.type="text/javascript";
r.async=true;r.src="https://d24n15hnbwhuhn.cloudfront.net/libs/amplitude-3.4.0-min.gz.js";
r.onload=function(){e.amplitude.runQueuedFunctions()};var i=t.getElementsByTagName("script")[0];
i.parentNode.insertBefore(r,i);function s(e,t){e.prototype[t]=function(){this._q.push([t].concat(Array.prototype.slice.call(arguments,0)));
return this}}var o=function(){this._q=[];return this};var a=["add","append","clearAll","prepend","set","setOnce","unset"];
for(var u=0;u<a.length;u++){s(o,a[u])}n.Identify=o;var c=function(){this._q=[];return this;
};var p=["setProductId","setQuantity","setPrice","setRevenueType","setEventProperties"];
for(var l=0;l<p.length;l++){s(c,p[l])}n.Revenue=c;var d=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","setGlobalUserProperties","identify","clearUserProperties","setGroup","logRevenueV2","regenerateDeviceId","logEventWithTimestamp","logEventWithGroups"];
function v(e){function t(t){e[t]=function(){e._q.push([t].concat(Array.prototype.slice.call(arguments,0)));
}}for(var n=0;n<d.length;n++){t(d[n])}}v(n);n.getInstance=function(e){e=(!e||e.length===0?"$default_instance":e).toLowerCase();
if(!n._iq.hasOwnProperty(e)){n._iq[e]={_q:[]};v(n._iq[e])}return n._iq[e]};e.amplitude=n;
})(window,document);
</script>
<base href="/">
<script type="text/javascript">
document.write('<scri'+'pt ');
document.write('type="text/javascript" ');
document.write('src="'+'/shared/theme/config.js');
document.write("?"+new Date().getTime()+'">');
document.write('</scri'+'pt>');
</script>
</head>
<body snitch ios7-viewport-fix>
<noscript>
<h1>Kahoot! needs JavaScript to work</h1>
<p>
To use Kahoot!, you need to have JavaScript enabled in your browser. To enable JavaScript, please do the following:
</p>
<ul>
<li>Follow these instructions.</li>
<li>Make sure you have the latest browser.</li>
<li>Turn off or disable the NoScript extension, if you have it.</li>
<li>Contact your IT administrator to allow access to Kahoot! in your security preferences.</li>
</ul>
<p>If you continue to have problems, please let us know by contacting Kahoot! support.</p>
</noscript>
<div id="debug-info" debug-info="dev,test" debug-timestamp></div>
<dev-mode></dev-mode>
<div class="loader" loader></div>
<iframe
id="gameBlockIframe"
style="display:none;"
class="game-block-iframe"
sandbox="allow-scripts allow-same-origin"
scrolling="no">
</iframe>
<div id="mainView" ng-cloak ng-view>
<h1>Join in a Kahoot! here</h1>
<p>To learn more about Kahoot! visit kahoot.com</p>
</div>
<div ng-cloak alerts></div>
<script type="text/javascript" src="/js/bootstrap.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
function gup( name, url ) {
if (!url) url = location.href;
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( url );
return results == null ? null : results[1];
}
var clientId = gup('gaId', window.location.search);
if (clientId) {
ga('create', 'UA-35308575-1', 'auto', {'allowLinker': true, 'clientId':gup('gaId', window.location.search)});
ga('create', 'UA-35308575-4', 'auto', {'name': 'legacy', 'clientId':gup('gaId', window.location.search)});
var platform = gup('platform', window.location.search);
if (typeof platform === 'string' && platform == 'iOS') {
window.ga('set', 'appName', 'Kahoot');
window.ga('set', 'appId', 'no.mobitroll.kahoot.controller');
}
if (typeof platform === 'string' && platform == 'Android') {
window.ga('set', 'appName', 'Kahoot');
window.ga('set', 'appId', 'no.mobitroll.kahoot.android');
}
} else {
ga('create', 'UA-35308575-1', 'auto', {'allowLinker': true});
ga('create', 'UA-35308575-4', 'auto', {'name': 'legacy'});
}
ga('send', 'pageview');
ga('legacy.send', 'pageview');
</script>
</body>
</html>
implicitly_wait needs to only be declared once when driver is initialized. To explicitly wait a specified number of seconds, you may use time.sleep(), although the more practical solution is just dynamically wait for the element to be present/clickable using Selenium's WebDriverWait.
I am having a problem embedding Bokeh on Heroku. It works fine on my local machine, but something is wrong, when I try on heroku. Below is the html file. My guess is the data is not embedding correctly. For instance __ndarray__ has some weird characters instead of the data. I had been struggling to find a solution. Can someone provide help?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Time-series plot</title>
<link rel="stylesheet" href="http://cdn.bokeh.org/bokeh/release/bokeh-0.12.3.min.css" type="text/css" />
<script type="text/javascript" src="http://cdn.bokeh.org/bokeh/release/bokeh-0.12.3.min.js"></script>
<script type="text/javascript">
(function() {
var fn = function() {
Bokeh.safely(function() {
var docs_json = {"25435e2e-0cb3-47b8-8bf1-32c906b6f420":{"roots":{"references":[{"attributes":{"callback":null},"id":"10baebf3-faeb-46d1-859d-3263c6cd9354","type":"DataRange1d"},{"attributes":{"line_alpha":{"value":0.1},"line_color":{"value":"#1f77b4"},"x":{"field":"x"},"y":{"field":"y"}},"id":"2be1d120-5724-460f-b0f0-7231d7e46726","type":"Line"},{"attributes":{"base":60,"mantissas":[1,2,5,10,15,20,30],"max_interval":1800000.0,"min_interval":1000.0,"num_minor_ticks":0},"id":"062863cd-1ed4-4b1a-af68-b016860bd87a","type":"AdaptiveTicker"},{"attributes":{"bottom_units":"screen","fill_alpha":{"value":0.5},"fill_color":{"value":"lightgrey"},"left_units":"screen","level":"overlay","line_alpha":{"value":1.0},"line_color":{"value":"black"},"line_dash":[4,4],"line_width":{"value":2},"plot":null,"render_mode":"css","right_units":"screen","top_units":"screen"},"id":"616ed4ac-d4c5-4010-beff-1589b8b73f52","type":"BoxAnnotation"},{"attributes":{"max_interval":500.0,"num_minor_ticks":0},"id":"9517227c-f613-42bc-a35e-ae3c9543f317","type":"AdaptiveTicker"},{"attributes":{"items":[{"id":"2fd93036-1ef3-4d56-bad7-88fdf9352c21","type":"LegendItem"}],"location":"top_left","plot":{"id":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f","subtype":"Figure","type":"Plot"}},"id":"13ee15d7-a5bd-40c8-b896-6d8955b883ee","type":"Legend"},{"attributes":{},"id":"751d139b-ceca-4eec-acbd-41e25b434a73","type":"DatetimeTickFormatter"},{"attributes":{},"id":"34d4f26b-a640-4129-88fd-578633815bbd","type":"YearsTicker"},{"attributes":{"below":[{"id":"f8b00322-303d-4c46-a577-b48573240aa7","type":"DatetimeAxis"}],"left":[{"id":"77143d5d-525f-4d25-acea-5c424eded496","type":"LinearAxis"}],"plot_height":500,"plot_width":800,"renderers":[{"id":"f8b00322-303d-4c46-a577-b48573240aa7","type":"DatetimeAxis"},{"id":"aa08aef8-adbe-4ac9-bb30-3276e6833765","type":"Grid"},{"id":"77143d5d-525f-4d25-acea-5c424eded496","type":"LinearAxis"},{"id":"bff245c2-03a5-411c-a938-515909623506","type":"Grid"},{"id":"616ed4ac-d4c5-4010-beff-1589b8b73f52","type":"BoxAnnotation"},{"id":"4311d6d9-1db1-4a28-b427-4f0d3da33a8d","type":"BoxAnnotation"},{"id":"13ee15d7-a5bd-40c8-b896-6d8955b883ee","type":"Legend"},{"id":"baee81d6-e664-46ba-b9d3-2e030d7fd672","type":"GlyphRenderer"}],"title":{"id":"ed0051be-e237-4b47-8663-afb3b1f1ce7c","type":"Title"},"tool_events":{"id":"93f77166-b47d-4147-8f40-60587534bb6e","type":"ToolEvents"},"toolbar":{"id":"9af07266-a889-4c6c-8e88-7a1f31d740f0","type":"Toolbar"},"x_range":{"id":"10baebf3-faeb-46d1-859d-3263c6cd9354","type":"DataRange1d"},"y_range":{"id":"4ffcdd86-22b4-4b7a-be07-ac70c84c27db","type":"DataRange1d"}},"id":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f","subtype":"Figure","type":"Plot"},{"attributes":{"band_fill_alpha":{"value":0.1},"band_fill_color":{"value":"olive"},"dimension":1,"grid_line_alpha":{"value":0},"plot":{"id":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f","subtype":"Figure","type":"Plot"},"ticker":{"id":"06fb8ff2-d611-405b-be38-e171cbf46d8c","type":"BasicTicker"}},"id":"bff245c2-03a5-411c-a938-515909623506","type":"Grid"},{"attributes":{"months":[0,2,4,6,8,10]},"id":"5fc979d4-46a9-469c-af56-527c9d4cb163","type":"MonthsTicker"},{"attributes":{"num_minor_ticks":5},"id":"f897d924-3e38-464c-a5af-8eb5d3b68094","type":"DatetimeTicker"},{"attributes":{"data_source":{"id":"6d6fc44a-63fb-4b3d-95b8-3d219a92f1ca","type":"ColumnDataSource"},"glyph":{"id":"dfd7789a-7064-469a-aed1-0f49e3bb6fb7","type":"Line"},"hover_glyph":null,"nonselection_glyph":{"id":"2be1d120-5724-460f-b0f0-7231d7e46726","type":"Line"},"selection_glyph":null},"id":"baee81d6-e664-46ba-b9d3-2e030d7fd672","type":"GlyphRenderer"},{"attributes":{},"id":"06fb8ff2-d611-405b-be38-e171cbf46d8c","type":"BasicTicker"},{"attributes":{"days":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]},"id":"413be9a6-f974-4bb0-a547-fd109820f4ac","type":"DaysTicker"},{"attributes":{"active_drag":"auto","active_scroll":"auto","active_tap":"auto","tools":[{"id":"ad71abf4-7812-47df-974c-bdf963267996","type":"PanTool"},{"id":"4651a289-09bc-4249-ab43-dcf8d0073edf","type":"WheelZoomTool"},{"id":"a630d9b3-35fa-4631-8971-6ffe63f5f285","type":"BoxZoomTool"},{"id":"2d21e9c6-d52c-4788-a4c1-96bb295c2421","type":"ResetTool"},{"id":"94e83390-ed62-4543-81c3-177bb7404bd0","type":"SaveTool"},{"id":"7d10de35-f889-4af5-a737-7b7e18177842","type":"BoxSelectTool"}]},"id":"9af07266-a889-4c6c-8e88-7a1f31d740f0","type":"Toolbar"},{"attributes":{"callback":null},"id":"4ffcdd86-22b4-4b7a-be07-ac70c84c27db","type":"DataRange1d"},{"attributes":{"days":[1,8,15,22]},"id":"f1182eaa-c07f-4f7a-b6e2-e2e003b26503","type":"DaysTicker"},{"attributes":{"plot":null,"text":"Data for GOOG from Quandle WIKI set"},"id":"ed0051be-e237-4b47-8663-afb3b1f1ce7c","type":"Title"},{"attributes":{"base":24,"mantissas":[1,2,4,6,8,12],"max_interval":43200000.0,"min_interval":3600000.0,"num_minor_ticks":0},"id":"2cee3978-4144-4aee-9971-b93db0a60f31","type":"AdaptiveTicker"},{"attributes":{"plot":{"id":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f","subtype":"Figure","type":"Plot"}},"id":"94e83390-ed62-4543-81c3-177bb7404bd0","type":"SaveTool"},{"attributes":{"plot":{"id":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f","subtype":"Figure","type":"Plot"}},"id":"2d21e9c6-d52c-4788-a4c1-96bb295c2421","type":"ResetTool"},{"attributes":{"callback":null,"column_names":["x","y"],"data":{"x":{"__ndarray__":"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","dtype":"float64","shape":[711]},"y":{"__ndarray__":"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","dtype":"float64","shape":[711]}}},"id":"6d6fc44a-63fb-4b3d-95b8-3d219a92f1ca","type":"ColumnDataSource"},{"attributes":{},"id":"93f77166-b47d-4147-8f40-60587534bb6e","type":"ToolEvents"},{"attributes":{"line_color":{"value":"blue"},"x":{"field":"x"},"y":{"field":"y"}},"id":"dfd7789a-7064-469a-aed1-0f49e3bb6fb7","type":"Line"},{"attributes":{"grid_line_alpha":{"value":0},"plot":{"id":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f","subtype":"Figure","type":"Plot"},"ticker":{"id":"f897d924-3e38-464c-a5af-8eb5d3b68094","type":"DatetimeTicker"}},"id":"aa08aef8-adbe-4ac9-bb30-3276e6833765","type":"Grid"},{"attributes":{"label":{"value":"Adj. Close"},"renderers":[{"id":"baee81d6-e664-46ba-b9d3-2e030d7fd672","type":"GlyphRenderer"}]},"id":"2fd93036-1ef3-4d56-bad7-88fdf9352c21","type":"LegendItem"},{"attributes":{"plot":{"id":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f","subtype":"Figure","type":"Plot"}},"id":"ad71abf4-7812-47df-974c-bdf963267996","type":"PanTool"},{"attributes":{},"id":"48053516-3d87-4026-986f-48129fc60e01","type":"BasicTickFormatter"},{"attributes":{"months":[0,6]},"id":"36d97b27-7fc5-4095-a5b7-6ec9003c8381","type":"MonthsTicker"},{"attributes":{"axis_label":"Date","formatter":{"id":"751d139b-ceca-4eec-acbd-41e25b434a73","type":"DatetimeTickFormatter"},"plot":{"id":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f","subtype":"Figure","type":"Plot"},"ticker":{"id":"f897d924-3e38-464c-a5af-8eb5d3b68094","type":"DatetimeTicker"}},"id":"f8b00322-303d-4c46-a577-b48573240aa7","type":"DatetimeAxis"},{"attributes":{"days":[1,15]},"id":"5c4984ed-252e-4eae-a6a2-1cf39a55814a","type":"DaysTicker"},{"attributes":{"months":[0,1,2,3,4,5,6,7,8,9,10,11]},"id":"4d867e4d-d57d-47b0-a9ed-037e2feeb430","type":"MonthsTicker"},{"attributes":{"bottom_units":"screen","fill_alpha":{"value":0.5},"fill_color":{"value":"lightgrey"},"left_units":"screen","level":"overlay","line_alpha":{"value":1.0},"line_color":{"value":"black"},"line_dash":[4,4],"line_width":{"value":2},"plot":null,"render_mode":"css","right_units":"screen","top_units":"screen"},"id":"4311d6d9-1db1-4a28-b427-4f0d3da33a8d","type":"BoxAnnotation"},{"attributes":{"callback":null,"overlay":{"id":"4311d6d9-1db1-4a28-b427-4f0d3da33a8d","type":"BoxAnnotation"},"plot":{"id":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f","subtype":"Figure","type":"Plot"},"renderers":[{"id":"baee81d6-e664-46ba-b9d3-2e030d7fd672","type":"GlyphRenderer"}]},"id":"7d10de35-f889-4af5-a737-7b7e18177842","type":"BoxSelectTool"},{"attributes":{"days":[1,4,7,10,13,16,19,22,25,28]},"id":"18e0bad7-fd4d-483a-a66d-8326fd4cb8d4","type":"DaysTicker"},{"attributes":{"axis_label":"Price","formatter":{"id":"48053516-3d87-4026-986f-48129fc60e01","type":"BasicTickFormatter"},"plot":{"id":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f","subtype":"Figure","type":"Plot"},"ticker":{"id":"06fb8ff2-d611-405b-be38-e171cbf46d8c","type":"BasicTicker"}},"id":"77143d5d-525f-4d25-acea-5c424eded496","type":"LinearAxis"},{"attributes":{"months":[0,4,8]},"id":"541618b2-937c-4225-a9e3-c94d0e9cac89","type":"MonthsTicker"},{"attributes":{"plot":{"id":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f","subtype":"Figure","type":"Plot"}},"id":"4651a289-09bc-4249-ab43-dcf8d0073edf","type":"WheelZoomTool"},{"attributes":{"overlay":{"id":"616ed4ac-d4c5-4010-beff-1589b8b73f52","type":"BoxAnnotation"},"plot":{"id":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f","subtype":"Figure","type":"Plot"}},"id":"a630d9b3-35fa-4631-8971-6ffe63f5f285","type":"BoxZoomTool"}],"root_ids":["8fa14872-25cd-4dec-82ab-b1dd9b8a852f"]},"title":"Bokeh Application","version":"0.12.4"}};
var render_items = [{"docid":"25435e2e-0cb3-47b8-8bf1-32c906b6f420","elementid":"f91b2880-937e-436d-88b0-04c339475f6f","modelid":"8fa14872-25cd-4dec-82ab-b1dd9b8a852f"}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
</script>
</head>
<body>
<div class=page>
<h1> Generated plot for GOOG </h1>
<h4> Back</h4>
<div class="bk-root">
<div class="bk-plotdiv" id="f91b2880-937e-436d-88b0-04c339475f6f"></div>
</div>
</div>
</body>
</html>
Problem to be the versioning of bokeh. In the html file had 0.12.3, but my requirements.txt had bokeh>=0.12.3, and because of which heroku was using 0.12.4. Changing the requirements.txt file to bokeh==0.12.3 fixed the problem.