Как указать, что разделителем является разрыв строки при записи в csv? Python селен - PullRequest
0 голосов
/ 05 апреля 2020

Я извлек список текста из раздела сайта. В частности, я удалил раздел Linkedin «опыт» и извлек каждый элемент опыта работы в этом разделе.

Однако данные представлены в виде текстового списка, и у меня возникают проблемы с форматированием их в виде файла CSV так, как я хочу.

Мой соответствующий код ниже:

from selenium import webdriver

ChromeOptions = webdriver.ChromeOptions()
driver = webdriver.Chrome('/Users/jones/Downloads/chromedriver')

driver.get('https://www.linkedin.com/in/pauljgarner/')

rows = []

name = sel.xpath('normalize-space(//li[@class="inline t-24 t-black t-normal break-words"])').extract_first()
experience = driver.find_elements_by_xpath('//section[@id = "experience-section"]/ul//li')

rows.append([name])
for item in experience:
    rows[0].append(item.text)
    print(item.text)
    print("")

with open(parameters.file_name, 'w', encoding='utf8') as file:
    writer = csv.writer(file)
    writer.writerows(rows)

Вывод Excel, полученный из этого кода, ниже:

enter image description here

Как видите, кажется, что разрыв линии отделяет каждое наблюдение.

Мой желаемый вывод в Excel приведен ниже:

(Обратите внимание, что у каждого текстового списка есть свои собственные имена переменных. Например, Название компании - для первого текстового списка, а Имя компании_2 - для второго текста. list).

enter image description here

Я подозреваю, что мне нужно найти способ указать в Python, что разрыв строки является разделителем в каждом списке текст. Однако я не уверен, как это сделать. Любая помощь будет признательна.

Раскрытие информации: я опубликовал вопрос по этой же проблеме несколько дней go, но я публикую более конкретный c вопрос о разделителях, потому что Я ничего не видел об указании разрывов строк в качестве разделителя при записи в csv с Python.

1 Ответ

1 голос
/ 05 апреля 2020

Я думаю, вам нужно разбить каждый элемент строк на '\ n'. Вам также нужно указать заголовки, чтобы получить желаемый результат.

headers = ['Name', 'Title', ... ]

with open(parameters.file_name, 'w', encoding='utf8') as file:
    writer = csv.writer(file)
    writer.writerow(headers)
    for row in rows:
        writer.writerow(row.split('\n'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...