Я пытаюсь получить songtexts с веб-страницы.Ниже у меня есть две версии того, как я хочу достичь этого, потому что с первой я мог получить текст только из первого абзаца <p>
, но иногда в пределах сборника песен класса div есть несколько <p>
.Со второй версией я достиг этого, но он включает в себя весь HTML.«.Text» работает, только если есть только один элемент, а не несколько (список).
Я немного растерялся, а также новичок в Python и BeautifulSoup, поэтому я очень ценю вашу помощь.
#Extract the songtext only and save it in file
url = urllib.request.urlopen('https://www.udo-
lindenberg.de/mit_dir_sogar_n_kind.57754.htm')
content = url.read()
soup = BeautifulSoup(content, 'lxml')
#search on page for div class block songbook and extract songtext between <p>
table = soup.find_all('div', attrs={"class":"block songbook"})
for item in table:
sys.stdout = open('output.txt','wt')
songtext = item.find('p').text
print(item.find('p').text)
#extracts the songtext with html markers
page_link = 'https://www.udo-lindenberg.de/mit_dir_sogar_n_kind.57754.htm'
page_response = requests.get(page_link, timeout=5)
page_content = BeautifulSoup(page_response.content, "html.parser")
textContent = []
for i in range(0,200):
paragraphs = soup.find_all('div', attrs={"class":"block songbook"})
textContent.append(paragraphs)
sys.stdout = open('output2.txt','wt')
print(paragraphs)