2017-09-01 142 views
0

我有问题。只与PYTHON2。Bs4创建对象很慢

r = self.session.get('http://..................') 
print "CREATE BS" 
print datetime.now() 
soup = BeautifulSoup(r.content, 'html.parser') 
print "CREATE BS END" 
print datetime.now() 

结果是:

CREATE BS 
2017-09-01 11:45:22.822256 
CREATE BS END 
2017-09-01 11:46:56.992892 

我不认为这是正常的:1,5分钟来解析HTML。 1周前我没有这个源代码的问题。任何知道bs4问题的人?

与python3一切都是约3秒。

+0

你使用的是什么网址,这可能有助于解决为什么会发生这种情况,你的网速是什么样的? :) –

+0

使用'lxml'解析器,与html解析器相比,速度非常快。你需要安装lxml。 – Stack

+0

无论网址bro或互联网速度如何,我都会在第一次打印之前提出请求;)问题在于解析。 lxml解析有同样的问题....非常慢。我试过 – simopopov

回答

0

伙计们我不相信,但问题是与编码:D经过在bs4源代码中的很多调试后,我找到了解决方案。解决方法是:

soup = BeautifulSoup(r.content, 'lxml', from_encoding="utf8") 

这from_encoding =“utf8”使所有的魔法。但这绝对是BS4中的错误。应该没有这个工作:)正如我所说的python3没有问题。

+1

如果这个答案适合你,你可以接受你自己的答案。 – serk