BeautifulSoup, выберите текст для извлечения

Это избыточно для списка new, так как ваш POCO зависит от Lazy Loading.

Lazy loading - это процесс, при котором сущность или совокупность объектов автоматически загружается из базы данных первый раз, когда осуществляется доступ к объекту, относящемуся к объекту / объектам. При использовании типов сущностей POCO, ленивая загрузка достигается путем создания экземпляров производных прокси-типов, а затем переопределения виртуальных свойств для добавления загрузочного крючка.

Если вы удалили виртуальный модификатор, вы отключили бы ленивую загрузку, и в этом случае ваш код больше не будет работать (потому что ничего не будет инициализировать список).

Обратите внимание, что Lazy Loading - это функция, поддерживаемая инфраструктурой сущности, если вы создаете класс вне контекста DbContext, то зависящий код, очевидно, будет страдать от NullReferenceException

НТН

0
задан Rene 18 January 2019 в 16:14
поделиться

2 ответа

Вы можете попробовать использовать свойство 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)
0
ответ дан Andersson 18 January 2019 в 16:14
поделиться
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">&ldquo;Insanity is doing the same thing, over and over again, but expecting different results.&rdquo; <br>  &#8213;
       <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
0
ответ дан madik_atma 18 January 2019 в 16:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: