Извлечение списка с веб-сайта с использованием Beautifulsoup в столбце данных - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь получить ключевые слова с сайта статьи. Ключевые слова на сайте выглядят так:

`This is the link:` `https://www.horizont.net/marketing/nachrichten/bgh-haendler-haftet-nicht-fuer-kundenbewertungen-auf-amazon-180980`

enter image description here

Я использую это для получения ключевых слов:

   Article_Keyword = bs.find('div', {'class':'ListTags'}).get_text()

и вот как я получаю:

Themen Bundesgerichtshof Amazon Verband Sozialer Wettbewerb Kundenbewertung Tape dpa 

Мне нужно получить это, разделив каждое ключевое слово запятой. Я могу сделать это с помощью RE, но некоторые ключевые слова содержат более одного слова, поэтому мне нужно это как одно ключевое слово.

есть ли способ получить каждое ключевое слово, разделив его запятой?

Ответы [ 3 ]

1 голос
/ 20 февраля 2020

Попробуйте это:

Article_Keyword = bs.find('div', {'class':'ListTags'})
aes_Article_Keyword  = Article_Keyword.find_all("a")

s_Article_Keyword = ", ".join([x.text for x in aes_Article_Keyword])
1 голос
/ 20 февраля 2020

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

from bs4 import BeautifulSoup as soup
from requests import get
url = "https://www.horizont.net/marketing/nachrichten/bgh-haendler-haftet-nicht-fuer-kundenbewertungen-auf-amazon-180980"
clnt = get(url)
page=soup(clnt.text,"html.parser")
data = page.find('div', attrs={'class':'ListTags'})
data1 = [ele.text for ele in data.find_all('a',attrs={'class':'PageArticle_keyword'})]
print(data1)
print(",".join(data1))

Вывод:

>> ['Bundesgerichtshof', 'Amazon', 'Verband Sozialer Wettbewerb', 'Kundenbewertung', 'Tape', 'dpa']
>> Bundesgerichtshof,Amazon,Verband Sozialer Wettbewerb,Kundenbewertung,Tape,dpa

Убедитесь, что вы одобрили ответ, если он был полезен.

1 голос
/ 20 февраля 2020

попробуйте

import requests
from bs4 import BeautifulSoup

url = 'https://www.horizont.net/marketing/nachrichten/bgh-haendler-haftet-nicht-fuer-kundenbewertungen-auf-amazon-180980'
page = requests.get(url)
soup1 = BeautifulSoup(page.content, "lxml")

Article_Keyword = soup1.find('div',{'class':'ListTags'}).find_all("a")
Article_Keyword = ", ".join([keyword.text.strip() for keyword in Article_Keyword])

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