Ошибка при записи в файл csv
import requests
import pandas
from time import sleep
data = []
def page_one():
url = 'https://www.olx.ua/d/uk/nedvizhimost/komnaty/dolgosrochnaya-arenda-komnat/poltava/'
r = requests.get(url)
soup = BeautifulSoup(r.text, 'lxml')
sleep(3)
name_info = soup.find_all('h6', class_='css-v3vynn-Text eu5v0x0')
for info in name_info:
data.append(info.text)
price = soup.find_all("p", class_='css-wpfvmn-Text eu5v0x0')
for p in price:
data.append(p.text)
def all_pages():
for page in range(2, 3):
sleep(3)
print(page)
url1 = f'https://www.olx.ua/d/uk/nedvizhimost/komnaty/dolgosrochnaya-arenda-komnat/poltava/?page={page}'
r = requests.get(url1)
soup = BeautifulSoup(r.text, 'lxml')
name_info = soup.find_all('h6', class_='css-v3vynn-Text eu5v0x0')
for info in name_info:
data.append(info.text)
price = soup.find_all("p", class_='css-wpfvmn-Text eu5v0x0')
for p in price:
data.append(p.text)
page_one()
all_pages()
df = pandas.DataFrame([data], columns=["Name", "Price"])
df.to_csv('test.csv', sep=";")
Ошибка:
2
Traceback (most recent call last):
File "C:\Users\shifu\AppData\Local\Programs\Python\Python310\lib\site-packages\pandas\core\internals\construction.py", line 982, in _finalize_columns_and_data
columns = _validate_or_indexify_columns(contents, columns)
File "C:\Users\shifu\AppData\Local\Programs\Python\Python310\lib\site-packages\pandas\core\internals\construction.py", line 1030, in _validate_or_indexify_columns
raise AssertionError(
AssertionError: 2 columns passed, passed data had 106 columns
Process finished with exit code 1```
Ответы (1 шт):
Автор решения: Сергей Ш
→ Ссылка
from time import sleep
import pandas
import requests
from bs4 import BeautifulSoup
data = []
def all_pages():
for page in range(1, 3):
sleep(3)
url1 = f'https://www.olx.ua/d/uk/nedvizhimost/komnaty/dolgosrochnaya-arenda-komnat/poltava/?page={page}'
r = requests.get(url1)
soup = BeautifulSoup(r.text, 'lxml')
info = soup.find_all('div', class_='css-19ucd76')
for fo in info:
name = fo.find('h6')
price = fo.find("p")
if name:
data.append([name.text, price.text])
all_pages()
df = pandas.DataFrame(data, columns=["Name", "Price"])
df.to_csv('test.csv', sep=";")
print(df)
Name Price
0 Аренда комнаты в Полтаве 2 500 грн.
1 Сдам комнату в Полтаве 4 000 грн.
.....
53 Здам койко-місце 800 грн.
54 Временно,возьму на кв.девушку заочницу,команди... 1 950 грн.