Ошибка в цикле (?) - Python
Формулировка задачи:
Доброго времени суток, весь вечер убил на поиск ошибки
Взял для практики канал TED и решил вывести все названия выступлений(видео)
Может кто подсказать почему в итоге выдает набор из одинаковых названий, а не перечисление всех?
Листинг программы
- import urllib.request
- from bs4 import BeautifulSoup
- def get_html(url):
- response = urllib.request.urlopen(url)
- return response.read()
- def parse(html):
- soup = BeautifulSoup(html, "html.parser")
- ul = soup.find("ul", {"class": "channels-browse-content-grid branded-page-gutter-padding grid-lockups-container"})
- projects = []
- for block in ul.find_all('li'):
- rows = block.find_all('div')
- cont = soup.find_all("div", {"class": "yt-lockup-content"})
- projects.append({
- 'name': cont[0].a.text
- })
- for project in projects:
- print (project)
- def main():
- parse(get_html('https://www.youtube.com/user/TEDtalksDirector/videos'))
- if __name__ == '__main__':
- main()
Решение задачи: «Ошибка в цикле (?)»
textual
Листинг программы
- import urllib.request
- from bs4 import BeautifulSoup
- def get_html(url):
- response = urllib.request.urlopen(url)
- return response.read()
- def parse(html):
- soup = BeautifulSoup(html, "html.parser")
- ul = soup.find("ul", {"class": "channels-browse-content-grid branded-page-gutter-padding grid-lockups-container"})
- titles = []
- for block in ul.find_all('li'):
- cont = block.find_all("a", {"class": "yt-uix-tile-link"})
- if cont:
- titles.append({'name': cont[0].text})
- for title in titles:
- print(title)
- parse(get_html('https://www.youtube.com/user/TEDtalksDirector/videos'))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д