首页 > 解决方案 > 将 BeautifulSoup 输出的字符与声明的字符进行比较时出错

问题描述

我正在尝试从网站中提取一个字符并将其与我在代码中声明的字符进行比较。

就我而言,当我调用.getText(). 每当我尝试比较字符时,我都会收到此错误消息 - SyntaxError: invalid syntax。

我也很困惑,因为当我在 for 循环中声明它们时一切正常。

这是我的代码:

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

如果我在 for 循环之外声明char1并位于数组中的位置 0,则比较似乎工作正常。位置 0 对应于。char2char1'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 中的字符比较,我有什么遗漏吗?

标签: pythonfor-loopif-statementbeautifulsoup

解决方案


推荐阅读