find_all только очищает последнее значение - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь очистить веб-сайт и использую find_all, но он возвращает только последний div на странице и игнорирует два других!Любая идея?

Вот проверенный источник инспектором хрома:

<div id="listDesc" class="pane show pane"> ... <div> ==$0
<p> ... </p>
<p> ... </p>
<div id="listDesc" class="pane show pane"> ... <div>
<p> ... </p>
<p> ... </p>
<p> ... </p>
<div id="listDesc" class="pane show pane"> ... <div>
<p> ... </p>
<p> ... </p>

Я проверил исходный код сайта и нашел только один div с тем же именем:

<div id="listDesc" class="pane showpane">

Я пробовал разные подходы для очистки div (ов) отдельно, хотя это тоже не сработало!Вот код, который я использую.

import requests
from bs4 import BeautifulSoup
import urllib.request

source_ = requests.get(link).text
soup = BeautifulSoup(source_, 'lxml')

for match in soup.find_all('div',{'class':'pane showpane'}):
    print(match.text) # This prints only the last div

Как я могу получить содержимое всех трех div?

1 Ответ

1 голос
/ 14 июня 2019

Мне удалось это исправить, перебрав id:

    for match in soup.find_all('div', id="listDesc"):
        print(match.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...