2017-08-17 2 views
0

私は私の個人的なプロジェクトで、常に高くて低い在庫を保存したいと思っています。Pythonを使用してHTML/Javascriptから実際のデータを取得できません

ウェブサイトを次のように私はHTMLを取得しようとした

enter image description here

が、私は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"]) 
関連する問題