Я пытаюсь создать аккуратный массив, в котором хранятся следующие пары ключ-значение:
- cafename: "очищенное имя"
- cafeaddress: "очищенный адрес"
- cafedescription: "scrapped description"
Я написал код, который может очищать каждый из этих элементов при запуске как отдельные функции (таким образом, один элемент очищается для каждой функции = 3 функции). Но теперь я пытаюсь уменьшить количество повторений, используя одну функцию, которая очищает все 3 элемента, а затем добавляет их в список.
Прямо сейчас, когда я пытаюсь использовать приведенный ниже код, он просто возвращает описание, которое - последний элемент в строке cafes_container = soup_cafes.findAll(attrs={"class": "venue-title", "class": "address-content", "class": "venue-description"})
скрипта.
Весь блок кода выглядит следующим образом:
def cafes():
url = 'https://www.broadsheet.com.au/melbourne/guides/best-cafes-thornbury'
response = requests.get(url, timeout=5)
soup_cafes = BeautifulSoup(response.content, "html.parser")
type(soup_cafes)
cafes_container = soup_cafes.findAll(attrs={"class": "venue-title", "class": "address-content", "class": "venue-description"})
cafes = []
for container in cafes_container:
cafes.append(container.text)
return(cafes)