2016-08-22 5 views
0

Я пишу некоторый синтаксис для синтаксического анализа веб-сайта и получения всех href. Однако, когда я пытаюсь импортировать bs4, он выдает сообщение об ошибке «ImportError: невозможно импортировать имя« HTMLParseError ». Я использую Python 3.5.2.Ошибка при импорте Beautifulsoup

Я беру прошлую ссылку и знаю, что это может быть связано с старая версия bs4 и, следовательно, обновила ее до версии 4.5.1.Однако ошибка все еще существует.Это что-то не так с моим синтаксисом (я прилагаю ниже, что также из прошлой ссылки). Или мне нужно искать другой инструмент для выполнения этой задачи?

может кто-нибудь какие-либо идеи? еще одна вещь, я также пытаюсь установить LXML (он сказал, не удалось найти vcvarsall.bat), но не слишком. Так что, не много инструментов, я могу использовать.

from bs4 import BeautifulSoup 
import urllib.request 

def open_html(): 

    resp = urllib.request.urlopen("http://www.gpsbasecamp.com/national-parks") 
    soup = BeautifulSoup(resp, from_encoding=resp.info().get_param('charset')) 

    for link in soup.find_all('a', href=True): 
     print(link['href']) 

if __name__ == '__main__': 
    open_html() 
+1

Какие шаги вы предприняли для обновления BeautifulSoup до версии 4.5.1? Возможно, старая версия все еще присутствует? –

+0

запустите 'pip list'. is Beautifulsoup4, перечисленные –

ответ

0

В качестве альтернативная мера, установить Anaconda python, который включает в себя BS 4.4.1 и lxml 3.6 (https://docs.continuum.io/anaconda/pkg-docs). И, в общем, Anaconda упрощает управление пакетами, как легкий ветерок.

+0

Спасибо за комментарии. Является ли Анаконда переносной? Я могу закодировать python на машине без права администратора, поэтому не могу ее установить. Теперь я использую WinPython, который позволяет мне не регистрироваться на компьютере для запуска. –

+0

Собственно, была ли эта ошибка вызвана дефектом или отсутствием Visual Studio? –

+0

Я установил его несколько раз на учетные записи без прав администратора, на компьютерах Linux и Mac. Это вне коробки и работает без проблем. Поэтому я предполагаю, что VS не является обязательным условием, но я долго ни разу не пробовал в Windows. – dgg32

0

Если вы хотите установить lxml вручную, вы можете скачать lxml .whl файл, скопированный со страницы http://www.lfd.uci.edu/~gohlke/pythonlibs/. Следующая открытая CMD, перейдите в Сыроватского, где вы сохранили этот файл и используйте команду:

pip install [name_of_file]

Но это самый простой способ, чтобы удалить эту проблему, для еще я отсылаю вас к теме:

pip install gives error: Unable to find vcvarsall.bat

+0

Обратите внимание, что: вы можете установить таким образом каждый доступный для скачивания lib с указанной выше страницы. – dannyxn

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