selenium使用 如何用python抓取js生成的數(shù)據(jù)?
如何用python抓取js生成的數(shù)據(jù)?有幾種方法,如phantom JS、WebKit、selenium等。如果您對爬行的性能沒有任何要求,請嘗試selenium或Watir。Web自動化測試腳本可以
如何用python抓取js生成的數(shù)據(jù)?
有幾種方法,如phantom JS、WebKit、selenium等。如果您對爬行的性能沒有任何要求,請嘗試selenium或Watir。Web自動化測試腳本可以很好地使用它做很多事情。使用瀏覽器執(zhí)行JS,然后從dom獲取數(shù)據(jù)。另一方面,如果你知道JS是通過Ajax或者API獲取數(shù)據(jù)的,你可以直接獲取數(shù)據(jù)源,得到JSON或者XML,然后處理數(shù)據(jù)
這個問題真的很麻煩。以前沒有解決過。雖然selenium可以執(zhí)行JS腳本,但是它不能讀取返回值,或者JS獲得的返回值不能與Python交互,這也是一種異常的痛苦。我能想到的是,JS模擬Ajax操作,獲取返回值,然后用JS將返回值寫入web頁面。您可以在代碼之后添加一個新元素來編輯返回值(以防止特殊字符影響解析),將其寫入元素的值,然后使用selenium的find_u2;element定位元素并獲取值。
selenium如何將js定位value取到?
1、看相應(yīng)的JS代碼,用Python獲取原始數(shù)據(jù),模仿JS編寫相應(yīng)的Python代碼。
2、通過接口API獲取數(shù)據(jù),直接使用Python獲取和處理接口數(shù)據(jù)。
三。終極方法。使用selenium和phantom-JS執(zhí)行web頁面的JS代碼,獲取數(shù)據(jù)。這種方法可以得到100%的數(shù)據(jù),但速度太慢。
如何用python抓取js生成的數(shù)據(jù)?
應(yīng)使用Get屬性方法:驅(qū)動程序。查找元素按xpath(“//*[@id=”keyuucompany$value“]”)。getuAttribute(“value”)一定能解決您的問題。getattribute獲取標簽的屬性值:您還可以獲取img、a、table和input的屬性值
如果您對爬網(wǎng)性能沒有任何要求,請嘗試selenium或Watir。Web自動化測試腳本可以很好地使用它做很多事情。使用瀏覽器執(zhí)行JS,然后從dom獲取數(shù)據(jù)。另一方面,如果您知道JS是通過Ajax或API獲取數(shù)據(jù)的,那么直接轉(zhuǎn)到數(shù)據(jù)源,獲取JSON或XML,然后處理數(shù)據(jù)