Ошибка синтаксического анализа BeautifulSoup в ненужных символах Python

Код — не знаю, что я сделал, чтобы BeautifulSoup (BS) не работал

import mechanize
import urllib2
from bs4 import BeautifulSoup

#create a browser object to login
browser = mechanize.Browser()

#tell the browser we are human, and not a robot, so the mechanize library doesn't block us
browser.set_handle_robots(False)

browser.addheaders = [('User-Agent','Mozilla/5.0 (Windows U; Windows NT 6.0; en-US; rv:9.0.6')]
#url
url = 'https://www.google.com.au/search?q=python'
#open the url in our virtual browser
browser.open(url)
html = browser.response().read()
print html
soup = BeautifulSoup(html)
print(soup.prettify())

Ошибка

HTMLParseError: junk characters in start tag: u'{t:1}); class="gbzt ', at line 1, column 42892

<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-AU"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/google_favicon_128.png" itemprop="image"><title>python - Google Search</title><style>#gb{font:13px/27px Arial,sans-serif;height:30px}#gbz,#gbg{position:absolute;white-space:nowrap;top:0;height:30px;z-index:1000}#gbz{left:0;padding-left:4px}#gbg{right:0;padding-right:5px}#gbs{background:transparent;position:absolute;top:-999px;v

person yoshiserry    schedule 18.05.2014    source источник
comment
Кажется, вы сталкиваетесь с ошибками, потому что вы втягиваете css в html и пытаетесь проанализировать его как HTML. Здесь есть похожий вопрос, который может помочь stackoverflow.com/questions/10401110/   -  person Craicerjack    schedule 19.05.2014
comment
@yoshiserry, у меня код работает нормально, какую версию Python вы используете?   -  person Padraic Cunningham    schedule 19.05.2014
comment
2,7? я должен установить парсер lxml? может быть?   -  person yoshiserry    schedule 19.05.2014
comment
может быть, команда mechanize получает css и html, тогда как beautofulsoup(bs) обычно просто получает html?   -  person yoshiserry    schedule 19.05.2014
comment
@yoshiserry, я тоже использую 2.7 без проблем, ваш скрипт получает и печатает все нормально. Вы просто хотите разобрать страницу?   -  person Padraic Cunningham    schedule 19.05.2014
comment
Да, я хотел попрактиковаться в использовании BeautifulSoup для разбора страницы и извлечения из нее ссылок, или элементов div, или a, или элементов href. если у вас, а у меня 2.7 почему у вас работает а у меня нет? когда тот же код?   -  person yoshiserry    schedule 19.05.2014
comment
@yoshiserry Я добавил ответ, попробуйте использовать запросы и посмотрите, как у вас дела.   -  person Padraic Cunningham    schedule 19.05.2014


Ответы (1)


Попробуйте использовать запросы:

import requests
from bs4 import BeautifulSoup
#url
url = 'https://www.google.com.au/search?q=python'
r=requests.get(url)
html = r.text
print html
soup = BeautifulSoup(html)
print(soup.prettify())
person Padraic Cunningham    schedule 18.05.2014
comment
вау большое спасибо работает. Я так смущен тем, почему BeautifulSoup не работает. - person yoshiserry; 19.05.2014
comment
он использует запросы, но не сам по себе BeautifulSoup, он выдает ненужные символы, очевидно, которые я скачал. - person yoshiserry; 19.05.2014
comment
возможно, я не установил его должным образом, некоторые другие модули, которые я установил из бинарных пакетов Криса, тоже не работают. я смотрю на тебя pyQt4 - person yoshiserry; 19.05.2014
comment
есть ли у библиотеки запросов возможность заставить страницу ждать, пока она не будет загружена (javascript динамически генерирует некоторый контент страницы). Я хотел бы очистить динамический контент, который генерирует javascript. - person yoshiserry; 19.05.2014