Как добавить строку в некоторые элементы списка? - PullRequest
0 голосов
/ 01 ноября 2018

Я новичок в Python (3) и Beautifulsoup (4), пытаюсь научиться webscraping.

Я очищаю список членов шведского парламента. Почти все имена в выходных имеют (S) рядом с ними (члены социал-демократической партии). Первые четыре имени отсутствуют (S).

Есть ли способ добавить это к каждому имени без него, возможно, с условное утверждение? «Если элемент списка не содержит« (S) », добавьте его в конце этого элемента списка. "

Кроме того, возможно ли отформатировать имена как нижние?

Код:

source = urllib.request.urlopen("https://www.riksdagen.se/sv/ledamoter- 
partier/socialdemokraterna/").read()
soup = bs.BeautifulSoup(source, "lxml")

namn = soup.find_all("span", {"class": "fellow-name"})

for span in soup.find_all("span", {"class": "fellow-name"}):
    resultat = (span.text.strip())
    print(resultat)

Вывод:

Stefan Löfven
Anders Ygeman
Annelie Karlsson
Lena Rådström Baastad
Ahlberg, Ann-Christin (S)
Andersson, Johan (S)
Axelsson, Marie (S)
...

1 Ответ

0 голосов
/ 01 ноября 2018

Есть способ: str.endswith.

resultat = span.text.strip()
if not resultat.endswith(' (S)'):
    resultat += ' (S)'

(Я удалил окружающие скобки в первой строке; они не нужны.)

Чтобы поставить имя в конце с запятой, разделите текст на пробелы и снова соедините их с первым элементом в конце:

if not ',' in resultat:
    temp_list = resultat.split()
    resultat = ' '.join(temp_list[1:])+', '+temp_list[0]

Результат:

Löfven, Stefan (S)
Ygeman, Anders (S)
Karlsson, Annelie (S)
Rådström Baastad, Lena (S)
Ahlberg, Ann-Christin (S)
Andersson, Johan (S)
Axelsson, Marie (S)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...