首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Scrapy响应中的脚本标记中提取Javascript变量?

如何从Scrapy响应中的脚本标记中提取Javascript变量?
EN

Stack Overflow用户
提问于 2018-08-06 18:06:23
回答 1查看 894关注 0票数 1
代码语言:javascript
运行
复制
<script type="text/javascript">

define('roomsAndRatesData', function() {
var roomsAndRatePlans = {"propertyData":{"bookingFeeMessageEnabled":true}},{"rooms":{"24-285501":{"locale":"en"}}}

};
</script>

脚本中还定义了其他变量。我只需要"var roomsAndRatePlans“变量中的数据,任何人都可以建议只获取变量数据的解决方案。

我尝试过其他解决方案,但总是检索脚本标记中所有数据,且转换该数据会抛出错误。

所以请给我提供解决方案,只获得特定数据的脚本

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-08-06 22:14:19

您可以使用js2xml库:

代码语言:javascript
运行
复制
>>> 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代码:

代码语言:javascript
运行
复制
>>> snippet = response.css('script:contains("roomsAndRatesData")::text').get()
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51705142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档