[英]How to extract text from file (with in script tag) using Python or beautifulsoup
[英]Python: Extract Text from Script Tag using XPath
我正在尝试使用 xpath 访问下面 html 中的文本。
我写了这个语句response.xpath(//script/text())来提取标签内的文本。 出于某种原因,我没有看到数据预期文本。 谁能看到我做错了什么?
Method: response.xpath(//script/text())
<script>
digitalData={
page:{
pageInfo:{
destinationURL:window.location.href,
error:'',
language:'en' ,
country:'US' ,
pageName:'tangelo2' ,
articlepubdate:'' ,
articleenddate:'' ,
pageTitle: 'Health Services Innovation Company',
pageOwner:'' ,
pageTemplate:'' ,
pageCampaign:'',
tags:'',
pageLastPublishDate:'2020-01-08T12:15:04.032-06:00',
pageLastPublishedBy :'admin',
pageLastModifiedDate:'2020-01-08T10:24:36.466-06:00',
pageLastModifiedBy :'katrina'
},
recEngine:{
title:'Home',
image:'',
description:''
},
category:{
siteName: window.location.hostname.replace("www.", "") ,
version:'3.0',
contentType: '',
contentTopic: '',
contentSegment: '',
contentInitiative: '',
contentProduct: '',
contentProductLine: '',
primaryCategory:'tangelo2'
}
},
event:{ }
};
</script>
您的响应对象似乎是来自某些http.request的响应。
所以要获取脚本内容,需要的操作顺序如下:
txt = Response.content
- 获取此响应的内容(字符串)。root = etree.fromstring(txt)
- 解析这个字符串,得到元素树。script = root.xpath('//script')[0].text
- 获取脚本内容(更详细的描述见下文)。 可能您还应该添加所需的命名空间。另请注意,您的代码包含这样一个缺陷,即您未能将路径括在引号中(单引号或双引号)。 但即使你这样做了,结果也将是一个文本节点列表,只包含 1 个元素。
我的解决方案更简单、更直观,因为它:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.