作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<script type="text/javascript">
define('roomsAndRatesData', function() {
var roomsAndRatePlans = {"propertyData":{"bookingFeeMessageEnabled":true}},{"rooms":{"24-285501":{"locale":"en"}}}
};
</script>
该脚本中还定义了其他变量。我只需要“var roomsAndRatePlans”变量中的数据,任何人都可以建议解决方案以仅获取该变量数据。
我已经尝试过其他解决方案,但总是检索该脚本标签内的所有数据并转换该数据会引发错误。
所以请提供解决方案以仅获取该脚本的特定数据
谢谢
最佳答案
您可以使用 js2xml图书馆:
>>> import js2xml
>>> from js2xml.utils.vars import get_vars
>>> snippet = '''
var product = {"price": 10.93, "stock": false, "name": "JBL"};
var analytics = {"id": 1234};
'''
>>> get_vars(js2xml.parse(snippet))
{
'product': {'price': 10.93, 'stock': False, 'name': 'JBL'},
'analytics': {'id': 1234}
}
您的 JS 代码段似乎不完整,所以我在这里使用了一个虚拟代码段。在您的情况下,您可能首先必须通过以下方式获取 JS 代码:
>>> snippet = response.css('script:contains("roomsAndRatesData")::text').get()
关于javascript - 如何从 Scrapy 响应中的脚本标签中提取 Javascript 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51705142/
我是一名优秀的程序员,十分优秀!