Как извлечь текст, если теги HTML находятся под :: Перед использованием bs4 - PullRequest
0 голосов
/ 16 марта 2020

Я хочу извлечь дату и время публикации из: http://www.statssa.gov.za/?page_id=1854&PPN=P6141.2&SCH=7549

К сожалению, я не получил никакого вывода.

Я пытался,

html = urllib3.PoolManager()
Res = html.request("GET", URL)
soup = BeautifulSoup(Res.data, 'html.parser')
Div = soup.find('div', {'class': 'row'})
date = Div.find('h5')
print(date.text())

выдает ошибку, поскольку дата равна нулю

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Как сказал rolf82, получаемый вами div не прав. Попробуйте этот метод.

from simplified_scrapy import SimplifiedDoc,req

html = req.get('http://www.statssa.gov.za/?page_id=1854&PPN=P6141.2&SCH=7549')
doc  = SimplifiedDoc(html)
div = doc.getElement('div',value='row',start='Header block@end')
h5 = div.h5
print (h5.text)

Результат:

Publication date & time: 13 February 2020 @ 10:00
1 голос
/ 16 марта 2020

Вы должны быть более точными c, чтобы нацелиться на div. В документе несколько элементов с классом row, и первый не соответствует ожидаемому вами содержанию h5, поэтому он не работает.

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