2017-08-17 204 views
0

我正在研究我的個人項目,在那裏我要存儲所有時間最高和最低的股票。無法使用Python從HTML/Javascript中獲取實際數據

網址如下:

enter image description here

當我試圖獲取HTML,我的Javascript,Jsons作爲頁面越來越呈現後記。

我HTML這樣的:

function loadData(val){ 
    var url1 ; 
    if (val=='high'){ 
     url1 = '/products/dynaContent/equities/equities/json/online52NewHigh.json'; 
    }else{ 
     url1 = '/products/dynaContent/equities/equities/json/online52NewLow.json'; 
    } 
    $.get(url1, 
     function(data,curr){ 
      obj = eval('('+data+')');   

      maxPage= parseInt((obj.data.length)/ recordPerPage); 

      if (((obj.data.length)%recordPerPage)>0){ 
       maxPage++; 
      } 
      setData(0); 
     } 
    ); 
} 

我不知道如何獲得實際的數據,我想硒,分裂,urllib2的但對我來說並不奏效。

代碼:

from selenium import webdriver 
from urllib2 import urlopen 
import urllib2,cookielib 

url = 'https://www.nseindia.com/products/content/equities/equities/eq_new_high_low.htm' 
file_name = 'C:/Users/ASUS/Desktop/test.txt' 


site= "https://www.nseindia.com/products/content/equities/equities/eq_new_high_low.htm" 
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', 
     'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
     'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 
     'Accept-Encoding': 'none', 
     'Accept-Language': 'en-US,en;q=0.8', 
     'Connection': 'keep-alive'} 

req = urllib2.Request(site, headers=hdr) 


conn = urlopen(req) 
data = conn.read() 
conn.close() 

file = open(file_name,'wt') 
file.write(data) 
file.close() 

browser = webdriver.Firefox() 
browser.get('file:///'+file_name) 
html = browser.page_source 
browser.quit() 

做我錯過了什麼?渲染後有沒有其他方法可以獲得javascript/json數據?

回答

0

當你有可瀏覽的JSON時,你爲什麼要混合這麼多東西?您的JSON路徑是固定的,所以請直接使用它

from urllib2 import urlopen 
import urllib2, cookielib 
import json 

url = "https://www.nseindia.com/products/dynaContent/equities/equities/json/online52NewHigh.json" 
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', 
     'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
     'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 
     'Accept-Encoding': 'none', 
     'Accept-Language': 'en-US,en;q=0.8', 
     'Connection': 'keep-alive'} 
req = urllib2.Request(url, headers=hdr) 

conn = urlopen(req) 
data = conn.read() 
conn.close() 

data_json = json.loads(data) 

print (data_json["data"][0]["symbol"])