Проблема разбора страницы из Википедии с BeautifulSoup - PullRequest
0 голосов
/ 30 января 2019

У меня есть очень простой тестовый скрипт для извлечения статьи из Википедии и получения первого абзаца текста, который появляется на странице (то есть summary).

Вот оно:

from bs4 import BeautifulSoup
import urllib2

url = "https://en.wikipedia.org/wiki/Vicia_faba" 
print url
source = urllib2.urlopen(url)
soup = BeautifulSoup(source, 'lxml')
print soup
summary = soup.find('p').getText()
print summary

Я ничего не получаю при разборе summary, хотя страница успешно извлечена и правильно передана в BeautifulSoup.

Это выглядит довольно простой проблемой, но я не смог продвинуться дальше.BeautifulSoup полон трюков, но, к сожалению, я не знаком со многими из них!

Заранее благодарен за любые подсказки или предложения.

1 Ответ

0 голосов
/ 30 января 2019

Я изменил несколько вещей в вашем коде:

Python 3.x:

from bs4 import BeautifulSoup
import urllib.request



url = "https://en.wikipedia.org/wiki/Vicia_faba"
print(url)

with urllib.request.urlopen(url) as url:
    source = url.read()

soup = BeautifulSoup(source, 'lxml')
# print(soup)
# summary = soup.find('<p>').getText()
# print(summary)

for para_tag in soup.find_all('p'):
    print (para_tag.text)

ВЫХОД:

Fabasativa Moench.

Vicia faba, также известный в кулинарном смысле как широкая фасоль, фасоль или фасоль - разновидность цветущего растения семейства бобовых гороха и фасоли.Он имеет неопределенное происхождение [1]: 160 и широко культивируется как культура для потребления человеком.Он также используется в качестве покровной культуры, колокольчика, который имеет меньшие бобы.Сорта с более мелкими, более твердыми семенами, которые скармливают лошадям или другим животным, называют полевыми, тиковыми или тиковыми.Конский боб, виция фаба вар.equina Pers., - сорт, признанный общепринятым названием. [2]

Некоторые люди страдают от фавизма, гемолитического ответа на потребление бобов, состояния, связанного с G6PDD.В противном случае бобы с удаленной внешней оболочкой семян можно есть сырыми или приготовленными.На молодых растениях можно есть внешнюю оболочку семян, а на очень молодых растениях можно есть стручок семян.

Vicia faba - растение с жесткой посадкой, высотой от 0,5 до 1,8 метра (1,6–5,9 фута),с основами, которые являются квадратными в поперечном сечении.Листья длиной от 10 до 25 сантиметров (3,9–9,8 дюйма), перистые с 2–7 листочками и окрашены в ярко-серый (латинский: глаукус) серо-зеленый цвет.В отличие от большинства других вик, листья не имеют усиков для лазания по другой растительности.

Цветки длиной от 1 до 2,5 сантиметров (от 0,39 до 0,98 дюйма) с пятью лепестками;стандартные лепестки белые, лепестки крыльев белые с черным пятном (настоящий черный, не темно-фиолетовый или синий, как во многих «черных» окрасках) [3], а киль лепестки белые.Существуют также багровые бобы, которые недавно были спасены от вымирания. [4]Цветы имеют сильный сладкий аромат, привлекательный для пчел и других опылителей. [5]

продолжается ...

РЕДАКТИРОВАТЬ:

Вам нужно понять, как написана статья, захватить external-div, а затем тег внутри, который нужно захватить.

Что-то вроде:

container = soup.find("div",attrs={'class': 'mw-parser-output'})

paragraph = container.find("p")

for p in container.find_all("p"):
    if 'Vicia faba, ' in p.text or 'Some people suffer ' in p.text:
        print (p.text)

OUTPUT:

Vicia faba, также известный в кулинарном смысле как бобы, бобы fava или бобы faba, является разновидностью цветкового растения семейства бобовых гороха и бобов.Он имеет неопределенное происхождение [1]: 160 и широко культивируется как культура для потребления человеком.Он также используется в качестве покровной культуры, колокольчика, который имеет меньшие бобы.Сорта с более мелкими, более твердыми семенами, которые скармливают лошадям или другим животным, называют полевыми, тиковыми или тиковыми.Конский боб, виция фаба вар.Equina Pers., сорт, признанный общепринятым названием. [2]

Некоторые люди страдают от фавизма, гемолитического ответа на потребление бобов, состояния, связанного с G6PDD.В противном случае бобы с удаленной внешней оболочкой семян можно есть сырыми или приготовленными.У молодых растений можно есть внешнюю оболочку семян, а у очень молодых растений можно есть семенную коробочку.

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