Python语法错误,带有for

问题描述 投票:-3回答:2

这是我在这里的第一篇文章,我仅在一周前才开始使用python,运行代码时遇到了问题。这是代码:

try:
    sauce= urlib.request.urlopen('https://www.instagram.com/p/'+msg('text').read(),
    soup = bs.BeautifulSoup(sauce, 'html.parser')
    for item in soup.find_all('span', 'webtitleclass'):
        print(item)


except urlib.error.HTTPError as err:

然后显然,代码继续,但是问题在于,它在for的开头发现了一个错误,即语法错误。我尝试添加逗号和其他内容,但它没有改变。

语法错误在哪里?非常感谢

python beautifulsoup syntax syntax-error
2个回答
0
投票

这应修复封闭的括号并填写except

try:
    sauce = urlib.request.urlopen('https://www.instagram.com/p/'+msg('text').read())
    soup = bs.BeautifulSoup(sauce, 'html.parser')
    for item in soup.find_all('span', 'webtitleclass'):
        print(item)


except urlib.error.HTTPError as err:
    print(err)

0
投票

欢迎您!您遇到的问题根本不在for关键字中,但应该在这里]

sauce= urlib.request.urlopen('https://www.instagram.com/p/'+msg('text').read(),

我怎么知道?因为括号不平衡。您很可能遇到SyntaxError: unexpected keyword for,这是一个非常老的问题。

结果是python解析器会转换您以树形形式编写的源代码,但有时情况有些出乎意料,请考虑一下。

spam = []
some_function(spam)
#
some_function([])

它们是相同的,但解析器遇到了两种不同的情况,首先是一个标识符,第二个是列表表达式。

所以发生的事情是有时解析器将不得不切换到不同的上下文;您的情况是试图找出函数rlib.request.urlopen的参数,但遇到一个根本不属于该函数的for关键字!

为什么以前不警告我!我知道这对您来说很混乱,但这是一个很难解决的问题,并且python开发人员在“宽恕”方面做了更多考虑,因此您可能会遇到一些奇怪的语法错误。

© www.soinside.com 2019 - 2024. All rights reserved.