2015-03-30 105 views
-3

我遇到了一些试图让Python运行(Python 3.4)的问题,并且我希望有人能帮助我并指出我的代码中的错误。美丽的汤的Python语法帮助

我试图从网站屏幕刮黄页电话号码,但我不断收到“解析时SyntaxError:意外的EOF”,但我没有足够的经验足以找到我的代码中的错误。

from bs4 import BeautifulSoup 

import requests 

Company = raw_input("Enter a Company to extract the Phone Number: ") 

Location = raw_input("Enter State: ") 

r = requests.get("http://www.yellowpages.com/search?search_terms=" +Company +"&geo_location_terms=" +Location) 

# http://www.yellowpages.com/search?search_terms=[Company]&geo_location_terms=[Location] 

data = r.text 

soup = BeautifulSoup(data) 

for link in soup.find_all('a'): 
    print(link.get('phones.phone.primary') 
+0

我强烈建议使用自动关闭parens,括号,引号等的文本编辑器/ IDE。生活太短而无法计算括号 - 这也是为什么我不使用Lisp :) – MattDMo 2015-03-30 18:48:36

+0

另外,如果您真正使用Python 3.4,那么你对'raw_input()'的调用将不起作用,因为它只存在于Python 2中。将它改为'input()',你就全部设置好了。 – MattDMo 2015-03-30 18:50:55

+0

谢谢你们。我将raw_input()更改添加到input()并使其工作更好。我为我的python脚本使用了Notepad ++。你们有其他推荐的计划吗?我对编程很陌生 – 2015-03-30 18:54:40

回答

3

您在脚本的最后一行遗漏了右括号。它应该是:

print(link.get('phones.phone.primary')) 

错误消息意味着Python在查找右括号时到达文件(“EOF”)的末尾。

+0

darn,打我吧 – 2015-03-30 18:46:17

+0

谢谢你们。有点尴尬,我错过了。 – 2015-03-30 18:50:57

+0

@TravisGerken如果这有助于解决您的问题,请点击答案旁边的复选标记(将其变为绿色)考虑[接受](http://stackoverflow.com/help/accepted-answer)。这标志着问题有一个可以接受的答案,并为您和回答者颁发[声誉](http://stackoverflow.com/help/whats-reputation)。 – MattDMo 2015-03-30 19:27:08