Я сделал парсер для вещи в стиме, но мне нужно что бы он выводил всё в файл построчно а не в консоль

Рейтинг: 0Ответов: 1Опубликовано: 14.07.2023
from selenium import webdriver
import time
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.by import By

options = Options()
options.headless = True
s = Service(executable_path=r'C:\Users\seliv.DESKTOP-3PM6H4R\PycharmProjects\seleniumtests\firefox\geckodriver.exe')
options.binary_location = (r"C:\Program Files\Mozilla Firefox\firefox.exe")
driver = webdriver.Firefox(options=options)

url = 'https://steamcommunity.com/market/listings/730/Fracture%20Case'
driver.get(url=url)
time.sleep(1)

try:
    for name in driver.find_elements(By.ID, 'largeiteminfo_item_name'):
        print(name.text)
        with open('C:/Users/seliv.DESKTOP-3PM6H4R/Desktop/ws/source-page.html', "w") as file:
            file.write(name.text)
    for element in driver.find_elements(By.ID, 'market_commodity_forsale'):
        print(element.text)
        with open('C:/Users/seliv.DESKTOP-3PM6H4R/Desktop/ws/source-page.html', "a+") as file:
            file.write(element.text )
    for items in driver.find_elements(By.XPATH, '/html/body/div[1]/div[7]/div[2]/div[2]/div[4]/div/div[2]/div/div[2]/div/div/div[2]/div[3]/div'):
        print(items.text)
        with open('C:/Users/seliv.DESKTOP-3PM6H4R/Desktop/ws/source-page.html', "a+") as file:
            file.write(items.text)
    for ds in driver.find_elements(By.XPATH, '//*[@id="market_commodity_forsale_table"]'):
        print(ds.text)
        with open(r'C:\Users\seliv.DESKTOP-3PM6H4R\Desktop\ws\source-page.html', "a+") as file:
            file.write(ds.text)
except Exception as ex:
    print(ex)
finally:
    driver.close()
    driver.quit()

Данные которые я получил после парсинга вывелись в нужный мне файл, но в одну строку а мне надо что бы они были разделены. Помогите их разделить.

Ответы

▲ 1

Измени все случаи записи в файл следующим образом file.write(str(name.text) + ‘\n’)

‘\n’ - указатель для перехода на новую строку. Другой вариант: file.writeline(name.text)