@LordOftheCode

Скрипт не отправляет полную информацию с парсинга?

Я паршу сайт с играми stopg
У меня все отлично выводится в консоль все игры и информация и т.д
а при попытке записать эту информацию в .json файл записывается последняя запись, как сделать так чтобы записывалась вся спаршенная информация?
def get_first_news():
    url = 'https://stopgame.ru/review/new'
    r = requests.get(url)

    soup = BeautifulSoup(r.text, 'html.parser')

    articles_cards = soup.find_all('div', {"class": "item article-summary"})


    news_dict = {}
    for article in articles_cards:
        article_url = "https://stopgame.ru" + article.find('a', {"class": "article-image image"}).get("href")
        article_date_time = article.find("span", {"class": "info-item timestamp"}).text
        article_title = article.find("div", {"class": "caption caption-bold"}).text.replace("\n", "")
        print(f'{article_title} | {article_url} | {article_date_time}')

        article_id = url.split('/')[-2] + '/' + url.split('/')[-1]

        news_dict[article_id] = {
            "article_url" : article_url,
            "article_date_time" : article_date_time,
            "article_title" : article_title
        }

    with open("news_dict.json", "w") as file:
        json.dump(news_dict, file, indent=4, ensure_ascii=False)
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Неправильно получили article_id, он на каждой итерации цикла одинаковый, так что значение в словаре просто перезаписывается каждый раз
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы