背景:
-
我在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:scripts Melissa$ ./spider2.py
from: can't read /var/mail/bs4
./spider2.py: line 3: import: command not found
./spider2.py: line 4: import: command not found
./spider2.py: line 6: syntax error near unexpected token `('
./spider2.py: line 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冻结)但脚本再次抛出相同的错误 .
该错误确实说,“无法读取/ var / mail / bs4” . 为什么期望在那里找到bs4?我用“ls”确认/ var / mail /确实是空的 . 只是变得绝望,我尝试了“sudo find / -atime 1 | grep bs4”但是没有透露任何有趣的东西(甚至bs4的位置,就此而言) .
是错误说python不明白导入命令是什么?如果是这样,那会怎么样?导入不标准,是否依赖某些库?
我错过了什么?我应该在哪里看下一个?这是一个简单的答案吗? (通常是,但我只是看不到它 . )我是python的相对新手,并且热切但不太了解bash . 也是我第一次发布stackoverflow问题,所以提前感谢任何建议/帮助 .
2 回答
脚本应该执行为 -
代替 -
为了能够使用
./spider2.py
直接从终端执行脚本,您必须在脚本的最开始使用所谓的shebang line为其指定解释器 . 对于Python,那将是:如果没有指定解释器,脚本将使用终端解释器执行,在这种情况下可能是
bash
,当然这不能运行Python代码 .当然,该文件也必须标记为可执行文件 .
或者您可以使用Python解释器执行脚本,而不需要像@theharshest所推荐的shebang行:
我自己更喜欢后一种选择 .