2015-06-10 2 views
1

Я пытаюсь очистить некоторые данные с веб-страницы, используя красивый суп.Как читать страницу asp.net с помощью BeautifulSoup?

У меня возникают проблемы, когда я пытаюсь преобразовать HTML-документ в объект beautifulsoup.

когда я запускаю код

soup = BeautifulSoup(html_doc) 

им сообщение об ошибке получает:

SyntaxError: Non-ASCII character '\xa9' in file  C:/Users/mlee/PycharmProjects/BsTest/htmlparse.py on line 683, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 

Я считаю, что это происходит потому, что есть некоторые объекты asp.net ViewState в HTML, которые являются base64 кодированными ,

Есть ли способ обхода проблемы или мне придется использовать другой инструмент?

Кроме того, я в первую очередь интересуюсь только тем, как созданный javascript фрагмент текста. Есть ли лучший способ сделать это?

Спасибо!

ответ

1

Put этот заголовок

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

на первой строке вашего файла htmlparse.py, убедитесь, что PyCharm сохраняет файл в кодировке UTF-8 закодирован.

Это не имеет никакого отношения к asp/viewstate. У вас есть utf-символы в файле.

Я в первую очередь интересуюсь только тем, как созданный javascript фрагмент текста. Есть ли лучший способ сделать это?

Возможно, вы захотите использовать Selenium webdriver + привязки python для выполнения задачи. Другим вариантом является PhantomJS

+0

ах спасибо, это было решением. Оказывается, метод get_text() не возвращает текст, сгенерированный javascript правильно. Концептуально, что должно произойти, чтобы получить текст, сгенерированный javascript, и прекрасно ли он способен это сделать? Cheers – JesterKynes

+1

@JesterKynes BeautifulSoup не выполняет Javascript, насколько я знаю. Вам нужно заглянуть в библиотеки, которые запускают Javacript или используют какой-то безгласный движок браузера с привязками к python. Отъезд PhantomJS, CasperJS и Selenium. – Alik

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