首页 > 解决方案 > 将循环中的每个抓取的元素保存到 json 文件

问题描述

我正在抓取一个网站。当我抓取一个 URL 时,我将其写入字典。我想要做的是将每个字典写入一个 json 文件。当我执行以下循环时,文件不是保存为列表,而是保存为不可读的结构 {} {}。

df_price_m = {}    
with open(r"C:\Users\USER\Desktop\diploma\information.json", 'w', encoding='utf8') as fout:
        row = 0
        for url in data:
            row +=1
            driver.get(url)
            user_name_xpath = "//h1[@itemprop='name' and @data-shmid='profilePrepName']"
            user_name = get_elements(user_name_xpath)    
            user_about_xpath = "//*[@class='desktop-profile-page__about-text']" 
            user_about = get_elements(user_about_xpath)
            df_info['id'] = url
            df_info['user_name'] = user_name[0]
            df_info['user_about'] = user_about[0]
            json.dump(df_price_m, fout, ensure_ascii=False)

我得到以下json:

{"id": "www.aina.com", user_name: "Aina Nurma", "user_about": "I am a student"}
{"id": "www.aina.ru", user_name: "Aina Nur", "user_about": "I am a teacher"}

  

标签: pythonjsonloopsweb-scraping

解决方案


看起来您缺少一些代码,但我建议将所有数据保存为字典列表,然后在最后转储而不是转储到仅处理一个 url 的文件


推荐阅读