2015-03-30 3 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

Я настоятельно рекомендую использовать текстовый редактор/IDE, который автоматически закрывает парсеры, скобки, кавычки и т. Д. Жизнь слишком коротка, чтобы подсчитывать круглые скобки - и поэтому я не использую Lisp :) – MattDMo

+0

Кроме того, если вы действительно используя Python 3.4, ваши вызовы на 'raw_input()' не будут работать, поскольку он существует только в Python 2. Измените его на 'input()', и все будет готово. – MattDMo

+0

Спасибо, ребята. Я добавил изменение raw_input() в input() и его работу намного лучше. Я использую Notepad ++ для своих скриптов python. У вас есть другие рекомендуемые программы? Я новичок в программировании –

ответ

3

Вы оставили закрытую круглую скобку в последней строке сценария. Оно должно быть:

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

сообщения об ошибке означает, что Python достиг конца файла («EOF»), ища вашу закрывающую скобку.

+0

darn, избили меня до него –

+0

Спасибо, ребята. Немного смутившись, я пропустил это. –

+0

@TravisGerken, если это помогло решить вашу проблему, рассмотрите [принятие] (http://stackoverflow.com/help/accepted-answer), нажав на галочку (поворачивая ее зеленым) рядом с ответом. Это означает, что у вас есть приемлемый ответ и наград [репутация] (http://stackoverflow.com/help/whats-reputation) как для вас, так и для ответчика. – MattDMo

Смежные вопросы