Как сделать несколько словарей в один словарь? - PullRequest
0 голосов
/ 04 марта 2019

Моя цель - сделать словарь с названием раздела контента и связанной с ним ссылкой (на странице ханской академии).

Вот мой код:

from bs4 import BeautifulSoup
import re
from requests_html import HTMLSession

session = HTMLSession()
r = session.get('https://www.khanacademy.org/computing/computer-programming/programming#intro-to-programming')
r.html.render(sleep=5)
soup=BeautifulSoup(r.html.html,'html.parser')

#find course steps links
courses_links = soup.find_all(class_='link_1uvuyao-o_O-nodeStyle_cu2reh-o_O-nodeStyleIcon_4udnki')

list_courses={}
#print(courses_links)

for links in courses_links:
    courses = links.extract()
    link_course = courses['href']
    #print(link_course)
    title_course= links.find(class_='nodeTitle_145jbuf')
    #print(title_course)
    span_title_course=title_course.span
    #print(span_title_course)
    text_span=span_title_course.text.strip()
    #print(text_span)
    final_link_course ='https://www.khanacademy.org'+link_course
    #print(final_link_course)
    list_courses[text_span]=final_link_course
    print(list_courses) #showing weird things

Я бы хотел получить что-то вроде {title1 : link1, title2: link2...}.Но вместо этого я получаю несколько словарей (с несколькими {}).

1 Ответ

0 голосов
/ 04 марта 2019

Я хотел бы использовать панд, очень хороший инструмент для анализа данных для программирования на Python.Просто нужно установить pandas, используя pip

import pandas as pd

Передайте словарь, как показано ниже.

df=pd.DataFrame.from_dict(list_courses,orient='index')
print(df)

Это просто еще один вариант.не принимайте это иначе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...