gpt4 book ai didi

python - 使用 Scrapy 从动态 JSON 响应中提取内容

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:24 24 4
gpt4 key购买 nike

我想从如下所示的 JSON 输出中提取“avail”值。

{
"result": {
"code": 100,
"message": "Command Successful"
},
"domains": {
"yolotaxpayers.com": {
"avail": false,
"tld": "com",
"price": "49.95",
"premium": false,
"backorder": true
}
}
}

问题是 ['avail'] 值位于 ["domains"]["domain_name"] 下,我不知道如何获取域名。

下面有我的蜘蛛。第一部分工作正常,但第二部分则不行。

import scrapy
import json
from whois.items import WhoisItem

class whoislistSpider(scrapy.Spider):
name = "whois_list"
start_urls = []
f = open('test.txt', 'r')
global lines
lines = f.read().splitlines()
f.close()
def __init__(self):
for line in lines:
self.start_urls.append('http://www.example.com/api/domain/check/%s/com' % line)

def parse(self, response):
for line in lines:
jsonresponse = json.loads(response.body_as_unicode())
item = WhoisItem()
domain_name = list(jsonresponse['domains'].keys())[0]
item["avail"] = jsonresponse["domains"][domain_name]["avail"]
item["domain"] = domain_name
yield item

提前感谢您的回复。

最佳答案

目前,它尝试通过 "('%s.com' % line)" 键获取值。

您需要正确进行字符串格式化:

domain_name = "%s.com" % line.strip()
item["avail"] = jsonresponse["domains"][domain_name]["avail"]

关于python - 使用 Scrapy 从动态 JSON 响应中提取内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38310986/

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