gpt4 book ai didi

xpath - 如何在JavaScript源中选择元素?

转载 作者:行者123 更新时间:2023-12-03 16:04:48 25 4
gpt4 key购买 nike

我需要在下面的JavaScript源代码中获取“ html”键的值,该JavaScript源代码由xpath('.// script [34]')提取并嵌入到html源页面中。

   <script>
FM.view({
"ns": "pl.content.homeFeed.index",
"domid": "Pl_Official_MyProfileFeed__24",
"css": ["style/css/module/list/comb_WB_feed_profile.css?version=73267f08bd52356e"],
"js": "page/js/pl/content/homeFeed/index.js?version=dad90e594db2c334",
"html": " <div class=\"WB_feed WB_feed_v3\" pageNum=\"\" node-type='feed_list' module-type=\"feed\">\r\n...."
})
</script>


我特别不知道如何处理文本“ FM.view”。

最佳答案

我将使用.re()从脚本中提取html键值:

>>> response.xpath("//script[contains(., 'Pl_Official_MyProfileFeed__24')]/text()").re(r'"html": "(.*?)"\n')
[0].strip()
u'<div class=\\"WB_feed WB_feed_v3\\" pageNum=\\"\\" node-type=\'feed_list\' module-type=\\"feed\\">\\r\\n..'


或者,您可以从脚本中提取完整的对象,并用 json加载它并获取 html值:

>>> import json
>>> data = response.xpath("//script[contains(., 'Pl_Official_MyProfileFeed__24')]/text()").re(r'(?ms)FM\.view\((\{.*?\})\)')[0]
>>> obj = json.loads(data)
>>> obj['html'].strip()
u'<div class="WB_feed WB_feed_v3" pageNum="" node-type=\'feed_list\' module-type="feed">\r\n....'


请注意正则表达式中的 (?ms)部分-这是我们设置标志(多行和dotall)的方式,该标志在这种情况下有效。

关于xpath - 如何在JavaScript源中选择元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38194768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com