Дублируется возвращаемое значение
При вызове функция возвращает значения, дублируя его с предыдущим
from bs4 import BeautifulSoup
import requests
new_news = []
news = []
new_li =[]
url = 'https://donetskafisha.ru/kurs-dollara-i-grivny-v-dnr/'
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Firefox/45.0'
}
page = requests.get(url, headers = headers)
soup = BeautifulSoup(page.text, "html.parser")
news = soup.findAll('div', class_='uncode_text_column')
string = ''
def valut(string = None):
if string is None:
string = ''
for i in range(len(news)):
if news[i].find('span', class_='uk-text-large') is not None:
new_news.append(news[i].text)
for i in range(len(new_news)):
new_li.append(new_news[i].strip())
string='\n'.join(new_li)
return string
print(valut())
string = ''
print(valut())
Ответы (3 шт):
Автор решения: timur
→ Ссылка
Здесь
news = soup.findAll('div', class_='uncode_text_column')
string = ''
def valut(string = None):
Уберите
string = ''
и уберите
if string is None:
Автор решения: Namerek
→ Ссылка
Перенесите
new_news = []
new_li = []
В функцию
from bs4 import BeautifulSoup
import requests
url = 'https://donetskafisha.ru/kurs-dollara-i-grivny-v-dnr/'
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Firefox/45.0'
}
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.text, "html.parser")
news = soup.find_all('div', class_='uncode_text_column')
def valut():
new_news = []
new_li = []
string = ''
for i in range(len(news)):
if news[i].find('span', class_='uk-text-large') is not None:
new_news.append(news[i].text)
for i in range(len(new_news)):
new_li.append(new_news[i].strip())
string = '\n'.join(new_li)
return string
print(valut())
print('-' * 50)
print(valut())
Автор решения: n1tr0xs
→ Ссылка
Просто уберите в конце кода это:
string = ''
print(valut)
И еще функции лучше объявлять в начале кода, сразу после импортов.
Должно получиться так:
from bs4 import BeautifulSoup
import requests
def valut(string = None):
if string is None:
string = ''
for i in range(len(news)):
if news[i].find('span', class_='uk-text-large') is not None:
new_news.append(news[i].text)
for i in range(len(new_news)):
new_li.append(new_news[i].strip())
string='\n'.join(new_li)
return string
new_news = []
news = []
new_li =[]
url = 'https://donetskafisha.ru/kurs-dollara-i-grivny-v-dnr/'
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Firefox/45.0'
}
page = requests.get(url, headers = headers)
soup = BeautifulSoup(page.text, "html.parser")
news = soup.findAll('div', class_='uncode_text_column')
print(valut())
