Python 如何获取HTML脚本标记的内容
我正在尝试从一个URL中抓取地理数据,以便进行抓取操作。但是我在处理script标签的内容时遇到了问题 以下是脚本标记的内容:Python 如何获取HTML脚本标记的内容,python,pandas,scrapy,scrapy-spider,Python,Pandas,Scrapy,Scrapy Spider,我正在尝试从一个URL中抓取地理数据,以便进行抓取操作。但是我在处理script标签的内容时遇到了问题 以下是脚本标记的内容: <script type="application/ld+json"> { "address": { "@type": "PostalAddress", "streetAddress": "5080 Riverside Drive", "addressLocality"
<script type="application/ld+json">
{
"address": {
"@type": "PostalAddress",
"streetAddress": "5080 Riverside Drive",
"addressLocality": "Macon",
"addressRegion": "GA",
"postalCode": "31210-1100",
"addressCountry": "US"
},
"telephone": "478-471-0171",
"geo": {
"@type": "GeoCoordinates",
"latitude": "32.9252435",
"longitude": "-83.7145993"
}
}
</script>
我能得到关于如何实现这一目标的建议吗 我不明白您试图如何处理重复的xpath查询
//item/title/text()
。请注意,xpath对于提取HTML内容非常有用。问题中的
标记的内容不是HTML,因此无法使用xpath查询该内容
在第一步中,您可以获得
标记的内容:
content = tree.xpath('//script/text()').extract()[0]
然后,您可以使用json
包将json内容加载到Python字典中:
d = json.loads(content)
还要注意,示例中
中的JSON无效,
它缺少一个右括号。
上述方法仅适用于有效内容。标题中不需要标记名,如python或scrapy。这就是我们有标记的目的。我应该收集脚本标记的内容,然后使用ast.literal_eval()将其转换为字典,还是有其他有效的解决方案?我讨论的是你问题的格式,而不是内容本身。很抱歉造成混淆。我尝试使用xpath,然后才知道它只用于提取html内容。这就是我编写不完整代码的原因。很抱歉造成混淆如果有多个脚本标记怎么办。。tree.xpath(“//script/text()”).extract()[n]是否适用于第n个脚本标记?@avinash
d = json.loads(content)