This question already has an answer here:
BeautifulSoup invalid syntax in Python 3.4 (after 2to3.py)

(1个答案)


5年前关闭。




我想编写一个简单的代码,从网站内容创建html文件。我正在使用beautifulsoup 4库。使用以下方法创建BeautifulSoup对象时:
BeautifulSoup('<html></html>')

我收到此错误:



这行会导致错误:



我通过执行setup.py安装了库。

有什么问题?

我的整个代码:
import urllib.request as req
from bs4 import BeautifulSoup

def main():
    get_announcements("92-93", 1, 153, 12)

def get_announcements(year, term, courseID, group):
    website = req.urlopen('http://ce.sharif.edu/courses/' + year + '/' + str(term) + '/ce' + str(courseID) + '-' + str(group) + '/')
    site_content = website.readall()

    soup = BeautifulSoup('<html></html>')

if __name__ == '__main__':
    main()

库文件中init.py中的错误行:
try:
    is_file = os.path.exists(possible_filename)
except Exception, e:   #ERROR!!
    # This is almost certainly a problem involving
    # characters not valid in filenames on this
    # system. Just let it go.
    pass

最佳答案

您并不是太容易做到这一点,但我认为您发布的内容中只有足够的信息可以解决您的问题。

import urllib.request as req

仅当您使用的是Python 3.x时,此行才有效。既然您通过了此行,我将假定是这种情况。
except Exception, e:

该行使用的是Python 2.x语法。您似乎正在尝试在Python 3.x程序中导入Python 2.x库。那行不通。在Python 3中,except子句具有以下语法(因此,您需要as而不是逗号):
("except" [expression ["as" target]] ":" suite)+

只是为了验证,如果我的假设是正确的,则语法错误应表明逗号是产生问题的实际字符。

我不知道为什么会这样。我刚刚使用pip install BeautifulSoup4安装了bs4,而刚刚为第175行安装的版本中的代码是:
        try:
            is_file = os.path.exists(possible_filename)
        except Exception as e:
            # This is almost certainly a problem involving
            # characters not valid in filenames on this
            # system. Just let it go.
            pass

这将工作。

关于python - 错误的无效语法(__init__.py)与 BeautifulSoup 一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20174305/

10-12 22:07
查看更多