Как преобразовать красивый текст в список или повторяемый - PullRequest
0 голосов
/ 20 мая 2018

Как я могу преобразовать beautifulsoup текст в list или dictionary?

Я хочу получить итеративный список из информации, которую я получил из скребков Beautifulsoup.Например, теперь я удалил с сайта цитаты и получил текст, затем я хочу поместить эту текстовую цитату в список, чтобы я мог их перебирать.

from bs4 import BeautifulSoup
import requests

r = requests.get("http://www.great-quotes.com/quotes/category/Motivational")
data = r.text
soup = BeautifulSoup(data, 'html.parser')
# print(soup.prettify())

for quote in soup.find_all("span", class_="edit_body"):
    quotes = list(quotes)  # This gets me an error, name quote not defind
    print(quotes)

# This is is how I want my scraped quotes to look like

new_quote = ['quote', 'quote', 'quote']  # I want it to be in a list. 

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

soup.find_all() уже возвращает итератор со всеми тегами HTML, которые соответствуют вашей спецификации.По этой причине вы можете использовать вывод этой функции в виде списка:

quote_list = [quote_tag.text for quote_tag in soup.find_all("span", class_="edit_body")]
print(quote_list)
# Output: ['"What lies behind us and what lies before us are tiny matters compared to what lies within us."', '"Life is like a mirror. Smile at it and it smiles back at you."', ...]
0 голосов
/ 20 мая 2018
quotes = [quote for quote in soup.find_all('span', class_='edit_body')]
print(quotes)
...