Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取HTML脚本标记的内容_Python_Pandas_Scrapy_Scrapy Spider - Fatal编程技术网

Python 如何获取HTML脚本标记的内容

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"

我正在尝试从一个URL中抓取地理数据,以便进行抓取操作。但是我在处理script标签的内容时遇到了问题

以下是脚本标记的内容:

<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)