Вам в refrash не нужно переобъявлять функции get_html, get_content и parse
import requests
from bs4 import BeautifulSoup
URL = 'https://www.avito.ru/novosibirsk/kvartiry/prodam-ASgBAgICAUSSA8YQ?cd=1&f=ASgBAQICAUSSA8YQAUCQvg0Ulq41&proprofile=1&s=104'
HEADERS = {'user-agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36', 'accept': '*/*'}
HOST = 'https://www.avito.ru'
item = ''
new = ''
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')
item = soup.find('div', class_='item__line')
return item
def parse():
html = get_html(URL)
if html.status_code == 200:
item = get_content(html.text)
return item
else:
print('Error')
def refrash():
new = parse()
return new
item = parse()
while refrash() == item:
refrash()
Я тут ещё поменял кое-что. В refrash Вы по-сути делаете то же самое, что и в parse. Можно сделать один раз parse, а потом проверять с результатом refrash(хоть и без неё можно обойтись):
import requests
from bs4 import BeautifulSoup
URL = 'https://www.avito.ru/novosibirsk/kvartiry/prodam-ASgBAgICAUSSA8YQ?cd=1&f=ASgBAQICAUSSA8YQAUCQvg0Ulq41&proprofile=1&s=104'
HEADERS = {'user-agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36', 'accept': '*/*'}
HOST = 'https://www.avito.ru'
item = ''
new = ''
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')
item = soup.find('div', class_='item__line')
return item
def parse():
html = get_html(URL)
if html.status_code == 200:
item = get_content(html.text)
return item
else:
print('Error')
item = parse()
while parse() == item:
parse()