Что за ошибка с парсингом ссылки?
Если 22 строку закомментить, то все отлично работает, как только убираю коментарий, возникает ошибка "AttributeError: 'NoneType' object has no attribute 'get"
import requests
from bs4 import BeautifulSoup
import csv
URL = 'https://auto.ria.com/newauto/'
HEADERS = {
'user-agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ",
'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;'
}
HOST = 'https"//auto.ria.com'
def get_html(url,params= None):
r = requests.get(url,headers = HEADERS, params = params)
return r
def get_content(html):
soup = BeautifulSoup(html,"html.parser")
items = soup.find_all('a', class_='unlink rotator5_item')
price = soup.find_all('span',class_='price')
cars = []
for item in items:
cars.append({
'title':item.find('li',class_='title').get_text(strip=True),
'price':item.find('span',class_='price').get_text(strip=True),
#'link':HOST +item.find('a',class_='unlink rotator5_item').get('href'),
})
print(cars)
def parse():
html = get_html(URL)
if html.status_code == 200:
print("Все круто")
get_content(html.text)
else:
print("Все плохо,давай по новой Миша")
parse()
Ответы (1 шт):
Автор решения: Микита Білогур
→ Ссылка
Вот так работает:
cars.append({
'title': item.find('li', class_='title').get_text(strip=True),
'price': item.find('span', class_='price').get_text(strip=True),
'link': item.find('a', class_='unlink rotator5_item')
})
Проблема в том, что метод возвращает None, в котором нет метода .get(). Из-за проблемы с трейс-бэком.