我正在編寫一個python應用程序,它從我製作的web應用程序中刪除傳感器數據。我想使用lxml從HTML中收集某些跨度元素,這些元素會使用JQuery腳本定期更新。看起來好像lxml不會獲取使用JQuery更新的文本,因爲我只檢索原始HTML加載的空字符串。 JQuery的值在查看網頁時反映出來,而不是在網頁抓取工具上。我如何始終檢索使用JQuery進行更新的數據?如何刮取使用JQuery加載的特定HTML span元素
HTML
<!--Blower Speed Well -->
<div class = "col-xs-4">
<div class = "well" id="bspeed_well">
<span class = "tex" id="bspeed_text">Blower Speed: </span>
<span class = "val" id="bspeed_data"></span>
</div>
</div>
JQuery的更新HTML元素
//Gather Data from main.xml and store into variables
$.ajax({
type: "GET",
url: "static/main.xml",
//dataType: "xml",
async: false,
cache: false,
success: function(xml){
$(xml).find('item').each(function(){
var id = $(this).find('id').text();
switch(id){
case "blower_speed":
bspeed = $(this).find('value').text();
break;
}
});
$("#bspeed_data").text(bspeed);
的Python LXML查詢
page = requests.get('http://192.168.1.72:5000')
tree = html.fromstring(page.content)
blower_speed = tree.xpath('//span[@id="bspeed_data"]/text()')
print "Blower Speed: ", blower_speed
結果
鼓風機速度:[]
「bspeed」值來自哪裏? jquery是否發出一個單獨的請求來獲取值? – alecxe
是的。 JQuery發出ajax請求來從XML文檔中獲取值。 –