2016-06-10 79 views
-1

當在網頁上單擊按鈕時,會顯示一張數據表。我想刮掉這些數據,但是我無法從網站源代碼中找到它的來源。ajaxObject上的更新功能

這是按鈕的標籤:

<button type="submit" onclick="divChangeStateOn('load-raw-0062294377Amazon.com'); getRaw('0062294377', 'Amazon.com', 'lr-0062294377Amazon.com',this);"style="margin-bottom: 4px; width: 120px; text-align: left;" name="load-raw"><img src='images/workstation.png'/> raw data</button> 

我相信getRaw功能是數據來自(我不看好這個),所以我看着爲getRaw javascript代碼函數

function getRaw(asin, store, res, caller) 
{ document.getElementById(res).innerHTML = '<p align="center" valign="top"><img align="center" src="phpmy_loading.gif"></p>'; 
    var poststr = "raw=" + encodeURI(asin) + 
       "&site=" + encodeURI(store); 

    var updateResults = new ajaxObject(res, 'extra.php', caller); 
    updateResults.update(poststr); 
} 

我一直很難找到關於ajaxObject的任何文檔,並找不到有關更新函數的任何信息。什麼是ajaxObject.update在做什麼以及是否可以訪問按鈕被點擊時出現的數據?

function divChangeStateOn(divID) 
{ var divElem = document.getElementById(divID); 
divElem.style.display = 'block'; 
} 

編輯:鏈接到源代碼查看源代碼:http://www.ranktracer.com/account_workstation.php它可能是密碼保護,但我只是使用演示版本

編輯2: 我基本上是想編寫一個腳本,複製Ajax http請求。這其中,我在,它不工作,我特別關注其中的數據= URI

x = time.time() 
print x 
timestamp = datetime.fromtimestamp(x/1000.0) 
print timestamp 

uri = "raw=0062294377&site=Amazon.com&timestamp="+str(timestamp); 
url = "lr-0062294377Amazon.com" 

length = str(len(uri)) 
headers = {'X-Requested-With': 'XMLHttpRequest', 
     "Content-type": "application/x-www-form-urlencoded", 
     "Content-length": length, 
     "Connection" : "close"} 
s = Session() 
r = s.post(url= url, data= uri, headers= headers) 
+0

請發表整個代碼。 ajaxObject似乎是自定義代碼的一部分。 –

回答

0

爲ajaxObject整個代碼存在於你所提供的鏈接。請讓我們知道你在這裏期待什麼幫助?

function ajaxObject(layer, url, caller) { 
    if (caller) { 
     disableButton(caller, 'disable'); 
    } 
    var that = this; 
    var updating = false; 
    this.callback = function() {} 


    var LayerID = document.getElementById(layer); 

    this.update = function(passData) { 
     if (updating == true) { 
      return false; 
     } 
     updating = true; 
     var AJAX = null; 
     if (window.XMLHttpRequest) { 
      AJAX = new XMLHttpRequest(); 
     } else { 
      AJAX = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     if (AJAX == null) { 
      alert("Your browser doesn't support AJAX."); 
      return false 
     } else { 

      AJAX.onreadystatechange = function() { 
       if (AJAX.readyState == 4 || AJAX.readyState == "complete") { 
        if (caller) { 
         disableButton(caller, 'enable'); 
        } 
        LayerID.innerHTML = AJAX.responseText; 
        delete AJAX; 
        updating = false; 
        that.callback(); 

       } 
      } 
      var timestamp = new Date(); 
      var uri = passData + '&timestamp=' + (timestamp * 1); 
      AJAX.open("POST", url, true); 
      AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
      AJAX.setRequestHeader("Content-length", uri.length); 
      AJAX.setRequestHeader("Connection", "close"); 
      AJAX.send(uri); 
      return true; 
     } 
    } 
} 
+0

我想我想弄清楚如何在python中複製ajax http請求以調用與單擊原始數據按鈕時網頁所調用的數據相同的數據。 – FredNed