пишу парсер для сайта этажей,
из их кода пришлось вот таким образом выкручиваться
def parse(html):
soup = BeautifulSoup(html)
table = soup.find('div', class_= ‘body secondary content active’)
projects =
for row in table.find_all('article'):
cols = row.find_all('div')
projects.append({
‘title’: cols.a.text,
‘price’ : [price.text.strip() for price in cols.find_all('p', class_='price')],
‘ppm’ : [ppm.text.strip() for ppm in cols.find_all('p', class_='ppm')],
‘floor’ : [floor.text.strip() for floor in cols.find_all('p', class_='row floor')],
‘space’ : [space.text.strip() for space in cols.find_all('p', class_='row space')],
‘wall’ : [wall.text.strip() for wall in cols.find_all('p', class_='row wall')]
})
return projects
теперь надо все в эксель таблицой отразить
со 2 по 6 значение - списки
пыталась через такое
for row in data:
for column in row:
он говорит ошибку float
другая версия
for project in projects:
for column in project:
writer.writerow((project, ‘:’ % column .join(project)))
но мне надо как то список в строку преобразовать, он ругается на нее
как это сделать?
или как-то можно по другому разбить на столбцы ?
в общем в силу некорректного отображения csv данные в одном столбце, надо на 6 разбить.
с текстом все просто
sep= (';')
writer.writerow()
делает 6 столбцов