Parsing table to csv Python

54
December 10, 2019, at 11:30 PM

I need to parse table from https://ege.hse.ru/rating/2019/81031971/all/?rlist=&ptype=0&vuz-abiturients-budget-order=ge&vuz-abiturients-budget-val=10

import requests
from bs4 import BeautifulSoup
import pandas as pd
url = "https://ege.hse.ru/rating/2019/81031971/all/?rlist=&ptype=0&vuz-abiturients-budget-order=ge&vuz-abiturients-budget-val=10"
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
tbl = soup.find("table", {"id": "transparence_t"})
data_frame = pd.read_html(str(tbl))[0]
data_frame.to_csv('hseparser.csv')

I parse it, but data are on A1 to A699 cell. I need smash data to different cells. Please help me!

Answer 1

Pandas read_htmlalready reads all the tables from the given url and returns a list of tables. You don't have to explicitly use BeautifulSoup package.

>>> url = 'https://ege.hse.ru/rating/2019/81031971/all/?rlist=&ptype=0&vuz-abiturients-budget-order=ge&vuz-abiturients-budget-val=10'
>>> df = pd.read_html(url)
>>> len(df)
2
>>> df[0].head()
                                                   0                                                  1
0                                             Регион  Все  Алтайский край  Амурская область  Арханге...
1                                           Тип вуза  Все  Государственный  Головной  Филиал  Негосу...
2  Вузы с набором  больше  меньше  человек на бюд...  Вузы с набором  больше  меньше  человек на бюд...
>>> df[1].head()
                                                 Вуз  Качество приема на основании среднего балла ЕГЭ зачисленных на бюджетные места 2019  ...  Из них: без экзаменов  Ср.балл рассчитан с вычетом баллов за И.Д.?
0                   Адыгейский гос. ун-т., г. Майкоп                                               60.5                                    ...                      1                                          Нет
1  Азово-Черноморский инженерный ин-т. - филиал Д...                                               45.5                                    ...                      0                                          Нет
2   Академия труда и социальных отношений, г. Москва                                               77.8                                    ...                      0                                           Да
3          Алтайский гос. аграрный ун-т., г. Барнаул                                               54.7                                    ...                      0                                          Нет
4  Алтайский гос. гуманитарно-педагогический ун-т...                                               59.7                                    ...                      0                                           Да
[5 rows x 6 columns]

Saving this dataframe to csv will have all the data in different cells.

READ ALSO
pserve not working inside docker container

pserve not working inside docker container

I am trying to develop pyramid application with using docker-containerI build a docker images with below docker file

69
Download multiple files in Django without creating zip

Download multiple files in Django without creating zip

Is there a way to download multiple files in Django without creating zipfile on single click/requestFor downloading single file I am using the following code in views

39
Unable to write policy document in aws cdk using python

Unable to write policy document in aws cdk using python

Hi I am working on AWS CDKI am trying to create policy

65