2017-08-17 194 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"])