Разбор HTML по python, как разобрать атрибут, который необычен? - PullRequest
0 голосов
/ 27 августа 2018

У меня есть вопрос для разбора HTML с использованием python.

Я пытаюсь получить ключ атрибута и значение для использования, если fomular в python.

<!DOCTYPE HTML>
<html>
    <body>
        <p dir="ltr" class="FM_title_0">Test Color</p>
    </body>
</html>

, и это кодчто я делаю следующим образом

with open("C:\\file") as fp:
    soup = BeautifulSoup(fp, "html.parser")
tag = soup.p
if tag['class'] == 'FM_title_0' :
    print('aaa')

, но результат ничего не показывает.я понял, что тег ['class'] не может прочитать 'FM_title_0'.почему он не читает 'FM_title_0' ??

дополнительно, когда я запускаю этот код ниже

with open("C:\\file") as fp:
    soup = BeautifulSoup(fp, "html.parser")
tag = soup.p
print(tag['class'])

, он показывает ['FM_title_0'].но, пожалуйста, посмотрите это ниже

with open("C:\\file") as fp:
    soup = BeautifulSoup(fp, "html.parser")
tag = soup.p
print(tag['dir'])

этот результат показывает буквы.

Есть ли какая-либо разница между [xxx] и xxx при чтении значения атрибута?

1 Ответ

0 голосов
/ 27 августа 2018

Тип возвращаемого тега ['class'] - это список.Он содержит список всех классов, которые есть у тега.Таким образом, вы можете использовать оператор in для сравнения.Проверьте код ниже для вашей справки

from bs4 import BeautifulSoup
with open("test.html") as fp:
    soup = BeautifulSoup(fp, "html.parser")
tag = soup.p
print tag['class']
if 'FM_title_0' in tag['class'] :
    print('aaa')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...