js2xml:将javascript字符串转换为xml
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了js2xml:将javascript字符串转换为xml,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1525字,纯文字阅读大概需要3分钟。
内容图文
![js2xml:将javascript字符串转换为xml](/upload/InfoBanner/zyjiaocheng/613/e7ede03f1c30465fa213599d630574a8.jpg)
有时候爬数据遇到像下面这种,数据在script标签中以javascript形式存在。
<script type="text/javascript">
var totalReviewsValue = 32;
var averageRating = 4.5;
if(totalReviewsValue != 0){
events = "...";
}
</script>
一般我们都是通过正则的方式抽取,其实还可以使用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)
<class 'lxml.etree._Element'>
<Element program at 0x10f136888>
为了方便我们查看Element对象,使用下面的代码:
js2xml.pretty_print(data)
wow,返回我们熟悉的标记语言字符串。
<program>
<var name="totalReviewsValue">
<number value="32"/>
</var>
<var name="averageRating">
<number value="4.5"/>
</var>
<if>
<predicate>
<binaryoperation operation="!=">
<left>
<identifier name="totalReviewsValue"/>
</left>
<right>
<number value="0"/>
</right>
</binaryoperation>
</predicate>
<then>
<block>
<assign operator="=">
<left>
<identifier name="events"/>
</left>
<right>
<string>...</string>
</right>
</assign>
</block>
</then>
</if>
</program>
因为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
内容总结
以上是互联网集市为您收集整理的js2xml:将javascript字符串转换为xml全部内容,希望文章能够帮你解决js2xml:将javascript字符串转换为xml所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。