BeautifulSoup не возвращает ни одного из действительных результатов - PullRequest
0 голосов
/ 09 января 2020

BeautifulSoup возвращает None несколько из допустимых результатов, которые являются заголовками mov ie. Вот мой код:

import bs4
from bs4 import BeautifulSoup
from urllib.request import urlopen
url="https://www.rogerebert.com/balder-and-dash/the-best-films-of-the-2010s"
soup=BeautifulSoup(urlopen(url), "html.parser")

tags=soup.find_all("strong")
for tag in tags:
    title=tag.find("a")
    print(title)

Как я могу убедиться, что None не появляется? Я пробовал lxml парсер так же, как и Selenium, но получаю те же результаты. Спасибо.

Ответы [ 2 ]

1 голос
/ 09 января 2020

Вместо просто print(title), квалифицируйте его оператором if:

if title:
    print(title)

Это означает, что None будет равно if False и не будет печататься.

Редактировать: чтобы получить только заголовки и вырезать окружающие якорные теги, вы также ставите print(title.text). Спасибо BeastCoder за предложение.

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

за комментарий @ ggorlen выше, если вы просто хотите напечатать заголовки:

import bs4
from bs4 import BeautifulSoup
from urllib.request import urlopen
url="https://www.rogerebert.com/balder-and-dash/the-best-films-of-the-2010s"
soup=BeautifulSoup(urlopen(url), "html.parser")

tags=soup.select("strong > a")
for tag in tags:
    print(tag.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...