【发布时间】:2020-04-06 13:54:00
【问题描述】:
这里的工作是抓取一个从https://xxx.xxx.xxx/xxx/1.json 到https://xxx.xxx.xxx/xxx/1417749.json 的站点的API,并将其准确地写入mongodb。为此,我有以下代码:
client = pymongo.MongoClient("mongodb://127.0.0.1:27017")
db = client["thread1"]
com = db["threadcol"]
start_time = time.time()
write_log = open("logging.log", "a")
min = 1
max = 1417749
for n in range(min, max):
response = requests.get("https:/xx.xxx.xxx/{}.json".format(str(n)))
if response.status_code == 200:
parsed = json.loads(response.text)
inserted = com.insert_one(parsed)
write_log.write(str(n) + "\t" + str(inserted) + "\n")
print(str(n) + "\t" + str(inserted) + "\n")
write_log.close()
但是完成这项任务需要很多时间。这里的问题是如何加快这个过程。
【问题讨论】:
-
您是否首先尝试对处理单个 json 需要多长时间进行基准测试?假设每条记录需要 300 毫秒,您可以在大约 5 天内依次处理所有这些记录。
标签: python mongodb web-scraping pymongo