Очистка данных с помощью BeautifulSoup - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь скопировать данные в словарь с этого сайта,

from bs4 import BeautifulSoup 
import requests 
from pprint import pprint

page = requests.get('https://webscraper.io/') 
soup = BeautifulSoup(page.text, "lxml")

info = []
for x in range(1,7):
    items = soup.findAll("div",{"class":f"info{x}"})
    info.append(items)

, однако теги HTML не удаляются.

Ответы [ 2 ]

1 голос
/ 08 января 2020

Вам нужно использовать .text. Затем, чтобы получить то, что вы хотите, потребуется немного манипулировать строками.

from bs4 import BeautifulSoup 
import requests 
from pprint import pprint

url = 'https://webscraper.io/'
page = requests.get(url) 
soup = BeautifulSoup(page.text, "lxml")


info = []
for x in range(1,7):
    item = soup.find("div",{"class":"info%s" %x}).text.strip().replace('\n',': ')
    info.append(item)

info = '\n'.join(info)
print (info)
1 голос
/ 08 января 2020

Что-то вроде этого может работать? (Замените URL-адрес webscraper.io на ваш фактический URL-адрес запроса; вам также все равно потребуется очистить символы \ n от выходных данных):

from bs4 import BeautifulSoup 
import requests 
from pprint import pprint

page = requests.get('https://webscraper.io/') 
soup = BeautifulSoup(page.text, "lxml")

info = []
for x in range(1,7):
    items = soup.findAll("div",{"class":f"info{x}"})
    info += [item.text for item in items]

Т.е. item.text и объединить полученный результат массив с информацией

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