Ошибка при сравнении вывода символа BeautifulSoup с объявленным символом - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь извлечь символ с веб-сайта и сравнить его с символом, который я объявил в коде.

В моем случае я просматриваю возможные элементы в файле BeautifulSoup в поисках совпадать с буквой Z, когда я звоню .getText(). Всякий раз, когда я пытаюсь сравнить символы, я получаю это сообщение об ошибке - SyntaxError: недопустимый синтаксис.

Я также сбит с толку, потому что, когда я объявляю их не в for l oop, все работает нормально.

Вот мой код:

import requests, bs4
res = requests.get('https://www.example.com')

try:
    res.raise_for_status()
except Exception as exc:
    print('There was a problem: %s' % (exc))

noStarchSoup = bs4.BeautifulSoup(res.text)
ZElems = noStarchSoup.select('li')
TElems = noStarchSoup.select('a')

for x in range (0, 25):
    char1 = ZElems[x].getText()
    char2 = 'Z'
    if char1 == char2
        url = TElems[x].get('href')

print(url)

Вот результат, который я получаю:

if char1 == char2
                ^
SyntaxError: invalid syntax

Если я объявлю char1 и char2 вне for l oop и если char1 находится в позиции 0 в массиве, сравнение работает нормально. Позиция 0 соответствует 'A'.

>>> import requests, bs4
>>>
>>> res = requests.get('https://www.example.com')
>>> noStarchSoup = bs4.BeautifulSoup(res.text)
>>> ZElems = noStarchSoup.select('li')
>>> TElems = noStarchSoup.select('a')

>>> char1 = ZElems[0].getText()
>>> char2 = 'A'

>>> char1 == char2
True

Есть ли что-то, что мне не хватает в сравнении символов в Python?

...