linux下用js生成xml,js2xml:将javascript字符串转换为xml
有時候爬數據遇到像下面這種,數據在script標簽中以javascript形式存在。
var totalReviewsValue = 32;
var averageRating = 4.5;
if(totalReviewsValue != 0){
events = "...";
}
一般我們都是通過正則的方式抽取,其實還可以使用js2xml。將js轉換為xml標記的文本,這樣就可以通過抽取。
先提前出js文本
from pyquery import PyQuery as pq
doc = pq(html)js_text = doc('script').text()
print(js_text)
var totalReviewsValue = 32;
var averageRating = 4.5;
if(totalReviewsValue != 0){ events = "...";
}
js2xml
import js2xml
doc = pq(html)
js_text = doc('script').text()
parse_js = js2xml.parse(js_text)
print(type(parse_js))
print(parse_js)
為了方便我們查看Element對象,使用下面的代碼:
js2xml.pretty_print(data)
wow,返回我們熟悉的標記語言字符串。
...
因為parse_js是lxml庫的Element類對象。如果我們熟悉lxml庫的話,應該知道可以使用xpath或者css定位數據。
我們想獲取name=averageRating節點里的number節點中的value屬性的值。
number = parse_js.xpath("//program/var[@name='averageRating']/number/@value")
print(number)print(number[0])
['4.5']
4.5
總結
以上是生活随笔為你收集整理的linux下用js生成xml,js2xml:将javascript字符串转换为xml的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小号多少钱啊?
- 下一篇: vsftpd的主配置文件是什么linux