Beautiful Soup 4 导入错误?安装错误?

Posted

技术标签:

【中文标题】Beautiful Soup 4 导入错误?安装错误?【英文标题】:Beautiful Soup 4 import error? install error? 【发布时间】:2014-06-28 12:50:21 【问题描述】:

背景:

我使用的是 Mac OSX,10.8.5

python -V 说我正在运行 2.7.2

pip freeze 说我安装了 beautifulsoup4==4.3.2。

根据本教程,我正在尝试使用 Beautiful Soup 4 抓取网页: http://www.pythonforbeginners.com/python-on-the-web/web-scraping-with-beautifulsoup/

我按照工作笔记本电脑上的说明进行操作,一切都按预期进行。所以我已经成功完成了一次。

但这不是一个工作项目,所以我在我的个人笔记本电脑上再次尝试。相同的脚本,但在我的个人笔记本电脑(以及我妻子配置相同的笔记本电脑)上会发生以下情况:

Melissas-MacBook:脚本 Melissa$ ./spider2.py 来自:无法读取 /var/mail/bs4 ./spider2.py:第 3 行:导入:找不到命令 ./spider2.py:第 4 行:导入:找不到命令 ./spider2.py:第 6 行:意外标记 `(' 附近的语法错误 ./spider2.py: 第 6 行: `for i in range(1,10): '

这是我的脚本:

from bs4 import BeautifulSoup

import requests
import time

for i in range(1,10): 
    url = "http://memegenerator.net/Futurama-Fry/images/popular/alltime/page/%d" % (i)
    r = requests.get(url)
    data = r.text
    soup = BeautifulSoup(data)
    results = ""
    for link in soup.find_all('img'):
        print(link.get('alt'))

我尝试通过 pip 卸载,然后使用 easy_install 重新安装。同样,安装似乎工作(根据 pip freeze),但脚本再次抛出相同的错误。

错误确实显示“无法读取 /var/mail/bs4”。为什么它会期望在那里找到 bs4?我用“ls”确认 /var/mail/ 确实是空的。只是变得绝望,我尝试了“sudo find / -atime +1 | grep bs4”,但这并没有显示任何有趣的东西(或者甚至 bs4 的位置,就此而言)。

错误是说python不理解import命令是什么?如果是这样,那将如何发生?导入不是标准的,它是否依赖于某些库?

我错过了什么?我接下来应该看哪里?这是一个简单的答案吗? (通常是,但我只是看不到它。)我是 python 的相对新手,并且渴望但对 bash 还不太了解。我也是第一次发布 *** 问题,所以提前感谢任何建议/帮助。

【问题讨论】:

你为什么要执行./spider2.py这样的脚本,这样运行——python spider2.py 当然,你,嗯……需要通过python运行python脚本。这样做了,得到了预期的结果。谢谢你最严厉的。 :) 【参考方案1】:

为了能够使用./spider2.py 直接从终端执行脚本,您必须在脚本的最开始使用所谓的shebang line 为其指定一个解释器。对于 Python,这将是:

#!/usr/bin/env python

from bs4 import BeautifulSoup
# ...

如果没有指定解释器,则使用终端解释器执行脚本,在这种情况下可能是bash,当然不能运行Python代码。

当然,该文件也必须标记为可执行文件。

或者您可以使用 Python 解释器执行脚本,而无需使用 shebang 行,正如 @theharshest 所建议的那样:

python spider2.py

我自己更喜欢后一种选择。

【讨论】:

【参考方案2】:

脚本应该被执行为 -

python spider2.py

而不是-

./spider2.py

【讨论】:

如果文件被标记为可执行文件,您可能已经建议了一个适当的标题,允许提问者在尝试时运行它。 @AaronHall 你假设该文件被标记为可执行文件。

以上是关于Beautiful Soup 4 导入错误?安装错误?的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫利器:Beautiful Soup

Beautiful Soup 库基础知识

安装包 Beautiful Soup 失败。错误消息是“SyntaxError:调用'print'时缺少括号”

Beautiful Soup 4.2.0文档阅读笔记

Beautiful Soup 4 find_all 找不到 Beautiful Soup 3 找到的链接

python 之beautiful soup 4 warning