BeautifulSoup получает содержимое p от div - PullRequest
0 голосов
/ 07 января 2020

Я хочу извлечь содержимое тегов p с веб-страницы. Это структурировано следующим образом:

<div property="pas:description">
<p>content</p>
<p>content</p>
</div>

Я не просто хочу использовать getText (), потому что на странице есть другое содержимое, которое мне не нужно. Я просмотрел документацию, но я все еще не уверен, как получить содержимое из тегов p здесь

РЕДАКТИРОВАТЬ: я не хочу получать весь контент из тегов p, так как есть другой контент в p теги на этой странице. Я специально хочу получить содержимое, которое находится в div, со свойством 'pas: description'

Ответы [ 2 ]

0 голосов
/ 07 января 2020

Вы можете использовать

soup.find('div', {'property': "pas:description"})

, чтобы найти div с property, а позже вы можете искать p внутри этого div

from bs4 import BeautifulSoup as BS

text = '''<p>without div 1</p>
<div property="pas:description">
  <p>content 1</p>
  <p>content 2</p>
</div>
<div>
  <p>content in div without property </p>
</div>
<p>without div 2</p>'''

soup = BS(text, 'html.parser')

div = soup.find('div', {'property': "pas:description"})

for p in div.find_all('p'):
    print(p.string)

Результат

content 1
content 2
0 голосов
/ 07 января 2020

Ниже приведен код для извлечения «контента»

from bs4 import BeautifulSoup    

test_html= '''
            <div property="pas:description">
            <p>content</p>
            <p>content</p>
            </div>
           ''' 
soup4 = BeautifulSoup(test_html, 'html.parser')

print(soup4.find('div').p.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...