Вывести элементы сайта BeautifulSoup в виде списка - PullRequest
1 голос
/ 07 июня 2019

мне нужно 1.) Выведите и сохраните СПИСОК сайтов, используя пакет BeautifulSoup. Мои результаты слишком длинные: Официальный сайт: www.vigeland.museum.no/en/vigeland-park. 2.) Как мне перевести тип 'bs4.element.Tag' в список (в основном)

В лучшем случае мне нужно только www.vigeland.museum.no и т. д.

import requests # library to handle requests
from bs4 import BeautifulSoup as bs
#
r = requests.get('https://www.planetware.com/tourist-attractions-/oslo-n- 
osl-oslo.htm')
soup = bs(r.content, 'lxml')
print('request successful')
#
web_site=soup.find_all('div', class_="web")
for web in web_site:
    print(web.text)
    type(web)


### My RESULT ###
Official site: www.vigeland.museum.no/en/vigeland-park
Official site: www.khm.uio.no/english/visit-us/viking-ship-museum/
Official site: www.nasjonalmuseet.no/en/
Official site: http://munchmuseet.no/en
Official site: http://www.kongehuset.no/seksjon.html?tid=28697
Official site: www.khm.uio.no/english
Official site: http://frammuseum.no
Official site: www.skiforeningen.no/en/holmenkollen
Official site: https://www.oslo.kommune.no/politikk-og-a 
dministrasjon/radhuset/visit-the-oslo-city-hall/
Official site: www.akerbrygge.no/english
Official site: www.nhm.uio.no/english/
Official site: http://operaen.no/en/

bs4.element.Tag

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

Более аккуратный и эффективный способ - использовать класс и дочерний комбинатор , чтобы получить дочерний тег a. Затем вы получите абсолютно правильный номер, и вам не понадобится убирать строки.

import requests 
from bs4 import BeautifulSoup as bs
r = requests.get('https://www.planetware.com/tourist-attractions-/oslo-n-osl-oslo.htm')
soup = bs(r.content, 'lxml')
links = [item['href'] for item in soup.select('.web > a')]
0 голосов
/ 07 июня 2019

Split() текстовое значение, а затем strip() пробелы и сохранение только последнего значения строки.

import requests 
from bs4 import BeautifulSoup as bs
r = requests.get('https://www.planetware.com/tourist-attractions-/oslo-n-osl-oslo.htm')
soup = bs(r.content, 'lxml')
print('request successful')
web_site=soup.find_all('div', class_="web")
websiteofficial=[web.text.split('Official site:')[1].strip() for web in web_site]
print(websiteofficial)

Выход:

['www.vigeland.museum.no/en/vigeland-park', 'www.khm.uio.no/english/visit-us/viking-ship-museum/', 'www.nasjonalmuseet.no/en/', 'http://munchmuseet.no/en', 'http://www.kongehuset.no/seksjon.html?tid=28697', 'www.khm.uio.no/english', 'http://frammuseum.no', 'www.skiforeningen.no/en/holmenkollen', 'https://www.oslo.kommune.no/politikk-og-administrasjon/radhuset/visit-the-oslo-city-hall/', 'www.akerbrygge.no/english', 'www.nhm.uio.no/english/', 'http://operaen.no/en/']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...