Итак, я очищаю те же веб-страницы с помощью BS4, поскольку данные хранятся в таблицах, это довольно простой процесс. Определите таблицу и прочтите ее, используя: df1 = pd.read_html(str(table))
Проблема в том, что таблицы похожи, но не всегда одинаковы, то есть количество столбцов не всегда одинаковое. Например, в таблице на странице 1 есть следующие столбцы: Id, Name, DOB, College, Years_experience, Nationality
, тогда как в той же таблице на странице 2 есть те же столбцы, что и для колледжа. Итак:
Id, Name, DOB, College, Years_experience, Nationality
vs
Id, Name, DOB, Years_experience, Nationality
Поскольку я хотел бы сохранить данные в одном CSV, мой вопрос: как я могу определить все столбцы, и если в таблице отсутствуют некоторые столбцы, заполнить нулевые значения в CSV.
Так что-то вроде: проверьте имена столбцов, если не найдены, заполните нулевые значения для всех строк.
Есть ли какое-то простое решение для этого, или мне нужно создать dict и сделать все вручную ?
Кстати; если есть общее лучшее решение для этой проблемы, это не нужно делать с помощью Pandas, просто я привык к этому, так как это очень легко читать HTML таблица
Я делаю что-то вроде :
Я делаю что-то вроде:
for urlx in urls:
url = str(urlx)
res = requests.get(url,headers=headers)
soup = BeautifulSoup(res.content,'lxml')
table = soup.find('table', id='abc')
df1 = pd.read_html(str(table))
df1[0]['URL'] = urlx
df1[0].to_csv('_out.csv', encoding='utf=8',float_format="%.3f", index=False, header=None , mode='a')
Спасибо
редактировать: добавлено больше информации