Как получить список значений в пределах <p>, если его конечный тег равен <\\ / p> - PullRequest
0 голосов
/ 10 июня 2018

Это странно.Я пытался соскрести с сайта, где конец тега <p> равен <\\/p> вместо </p>.Очевидно, что каждый раз, когда я вызываю soup.find_all('p'), он не возвращает никаких значений вместо None.У меня нет проблем, когда я пытаюсь a или div, поскольку оба являются хорошо структурированными тегами с конечными тегами </a> и </div> соответственно.Я не имею ни малейшего представления о том, как я могу решить эту проблему.

from urllib.request import Request, urlopen
from bs4 import BeautifulSoup


url = 'http://www.gmanetwork.com/news/story/656223/money/economy/iphone-worries-weigh-on-wall-street'
page = urlopen(Request(url, headers={'User-Agent': 'Mozilla/5.0'}))
data = page.read()
soup = BeautifulSoup(data, 'html.parser')
print(soup.find_all('p'))

EDIT

Как и предполагалось, я обнаружил, что безголовые браузеры, такие как Splinter, немного расстраивают, так как модуль требуетзависимость от браузера (поправьте меня, если я ошибаюсь).

1 Ответ

0 голосов
/ 10 июня 2018

Ну, вы можете сделать что-то вроде этого:

import re
a = "<p> This is a text <\\/p>"
match = re.match("""^.*<p>(.*)<\\\\/p>.*$""", a).group(1)
print(match)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...