Добрый день, в данный момент парсю сайт и получаю ошибку AttributeError: 'NoneType' object has no attribute 'get_text'
Посмотрела предыдущую, со схожей темой, вопрос. Но, предложенное решение моей задаче не помог. Подскажите, почему именно эта ошибка выходит?
Посмотрела предыдущую, со схожей темой, вопрос. Но, предложенное решение моей задаче не помог. Подскажите, почему именно эта ошибка выходит?
Python:
import requests
from bs4 import BeautifulSoup
CSV = 'kvartiry.csv'
HOST = ''
URL = ''
HEADERS = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
}
def get_html(url, params=''):
r = requests.get(url, headers=HEADERS, params=params)
r.encoding = 'utf8'
return r
# html = get_html(URL)
# print(html)
def get_content(html):
soup = BeautifulSoup(html, "html.parser")
items = soup.find_all('div', class_='a-card__inc')
kvartiry = []
for item in items:
kvartiry.append (
{
'link_kvartiry': HOST + item.find('div', class_='a-card__title').find('a').get('href'),
'title_kvartiry': item.find('div', class_='a-card__title').get_text(strip=True)
'location_kvartiry': item.find('div', class_='a-card__subtitle').get_text(strip=True),
'price_kvartiry': item.find('div', class_='a-card__price').get_text(strip=True),
'year_kvartiry': item.find('div', class_='a-card__text-preview').get_text(strip=True)
}
)
return kvartiry
def save_document(item, path):
with open(path, 'w',newline='') as file:
writer = csv.writer(file, delimiter=';')
writer.writerow(['Link', 'Title', 'Location', 'Price', 'Year of construction'])
for item in items:
writer.writerow([item['link_kvartiry'], item['title_kvartiry'],item['location_kvartiry'],item['price_kvartiry'], item['year_kvartiry']])
def parser():
PAGENATION = input('Which page? ')
PAGENATION = int(PAGENATION.strip())
html = get_html(URL)
if html.status_code == 200:
kvartiry = []
for page in range(1, PAGENATION):
print(f'Processing: {page}')
html = get_html(URL, params={'page': page})
kvartiry.extend(get_content(html.text))
save_document(kvartiry, CSV)
pass
else:
print('Error')
html = get_html(URL)
print(get_content(html.text))
Последнее редактирование: