Это избыточно для списка new
, так как ваш POCO зависит от Lazy Loading.
Lazy loading - это процесс, при котором сущность или совокупность объектов автоматически загружается из базы данных первый раз, когда осуществляется доступ к объекту, относящемуся к объекту / объектам. При использовании типов сущностей POCO, ленивая загрузка достигается путем создания экземпляров производных прокси-типов, а затем переопределения виртуальных свойств для добавления загрузочного крючка.
blockquote>Если вы удалили виртуальный модификатор, вы отключили бы ленивую загрузку, и в этом случае ваш код больше не будет работать (потому что ничего не будет инициализировать список).
Обратите внимание, что Lazy Loading - это функция, поддерживаемая инфраструктурой сущности, если вы создаете класс вне контекста DbContext, то зависящий код, очевидно, будет страдать от
NullReferenceException
НТН
Вы можете попробовать использовать свойство stripped_strings
:
for quote in quotes:
if quote.text is not None:
strings = [string for string in quote.stripped_strings]
quote_body = strings[0]
quote_author = strings[2]
print(quote_body)
print(quote_author)
import requests
from bs4 import BeautifulSoup
#url = 'https://www.goodreads.com/quotes'
#r = requests.get(url)
#soup = BeautifulSoup(r.content, 'html.parser')
html = """
<div class="quoteText">“Insanity is doing the same thing, over and over again, but expecting different results.” <br> ―
<span class="authorOrTitle">Narcotics Anonymous</span>
</div>
"""
soup = BeautifulSoup(html, 'html.parser')
quotes = soup.find_all('div', {'class': 'quoteText'})
for quote in quotes:
if quote.text is not None:
quote_ = quote.text
quote_data = quote_.split(" ―")
quote_without_author = quote_data[0]
quote_author = quote_data[1]
print(quote_without_author.strip())
print(quote_author.strip())
Вы можете разделить данные на -, поэтому элемент [0] - ваша цитата, [1] - ваш автор.
Выход:
“Insanity is doing the same thing, over and over again, but expecting different results.”
Narcotics Anonymous