Веб-парсинг с помощью Selenium и read_ html - лучший способ получить содержимое таблицы? Как работать с выводом списка DataFrame? - PullRequest
1 голос
/ 26 мая 2020

Я уверен, что здесь есть мастер pandas, который может показать мне лучший метод того, что я делаю. В настоящее время я не могу просто очистить данные с помощью read_ html (), поэтому мне нужно перемещаться по странице и открывать там таблицы, нажимая отдельные кнопки, чтобы получить сгенерированные данные, как только это произойдет.

фрагмент кода;

elem = sesh.find_element_by_xpath(f'{gen_button}')
elem.click() #click highlight link
#get the elements from the general table
gen_table = sesh.find_element_by_xpath(body1) # go to the appropriate table
general = pd.read_html(str(gen_table.get_attribute('innerHTML')))
print(general)

вывод;

[Forge F C Минуты в игре Прикосновения 0
Александр Акиниоти-Йонссон 77 47 1
Бертран Овунди 77 69 2 Christopher Nanco 56 42 3 Domini c Samuel
90 59 4 Elimane Cissé 90 75 5 Emery Welshman 90 51 6 Giuliano Frano 90108 7 Джонатан Грант
13 10 8 Kadell Thomas 34 32 9 Kwame Awuah 90 108 10 Кайл Беккер
90 63 11 Марсель Зая c 13 10 12 Тристан Боргес 90 78 13
Тристон Генри 90 38]

Вы можете видеть, что сервоприводы стола там. За ним следует порядковый номер и следующая строка ...

Я счастлив, что он генерирует данные так, как я знаю, что могу работать. Но я удивлен, что данные не очищены с помощью каких-либо разделителей, поэтому я получаю что-то, что на данный момент является непригодным для использования.

С нетерпением жду того, что вы можете предложить.

Ура

1 Ответ

0 голосов
/ 27 мая 2020

Значит, я должен был это понять. Этот read_ html создает DataFrame (S), поэтому мне просто нужно убедиться, что я загружаю каждый отдельно.

db = general[0]
a = []
for i in range(db.shape[0]):
    row = db.loc[i].values
    a.append(row)
cpl = pd.DataFrame(a,columns=['name','minutes','touches'])

Я просто чувствую, что должно быть более простое решение.

...