Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 美化组-不是预期的输出_Python_Beautifulsoup - Fatal编程技术网

Python 美化组-不是预期的输出

Python 美化组-不是预期的输出,python,beautifulsoup,Python,Beautifulsoup,我已经做到了: >>> from bs4 import BeautifulSoup; import urllib2 >>> data = urllib2.urlopen('http://api.stackexchange.com/docs/').read() >>> soup = BeautifulSoup(data.replace('""','"')) # there are errors on page >>> soup

我已经做到了:

>>> from bs4 import BeautifulSoup; import urllib2
>>> data = urllib2.urlopen('http://api.stackexchange.com/docs/').read()
>>> soup = BeautifulSoup(data.replace('""','"')) # there are errors on page
>>> soup.prettify()
<!DOCTYPE HTML>
<html lang="en">
............... # cut short
</html>

除了Python中的默认HTML解析器之外,您还没有安装任何其他HTML解析器(这真的不太好)

然后重新加载所有内容,BeautifulSoup将自动获取lxml并使用它来解析HTML。这对我来说很有效,没有引号重写(这是某种事情正在进行的迹象)


(HTML可能以某种奇怪的方式被破坏,而Python的HTML解析器即使在bs4的帮助下也不能很好地理解这类事情。)

看来,向不同的用户代理发送不同的页面也是如此。这不是BS的错;问题出现在第2行中,您使用urllib2下载页面。请参阅这个解释的答案(在本例中,由于缺少robots.txt文件,这是允许的)。。。更新..是的,你是对的,我的问题现在解决了,谢谢。
 data = open('Stack Exchange API.htm').read()
pip install lxml