2017-07-10 59 views
0

我敢肯定,这是非常接近许多其他SO帖子,但我遇到麻烦剪裁这些问题和答案,我看到的问题。BeautifulSoup返回空列表 - 其他解析器导致Python错误

当我运行下面显示的代码时,BeautifulSoup返回[]。我一直在搜索SO的信息,并看到这篇文章谈论解析器和已知的错误:Html parsing with Beautiful Soup returns empty list。但是,当我尝试其他解析器时,出现错误:

Couldn't find a tree builder with the features you requested: lxml. 

我在Macbook Pro上使用Python 2.7.10。有谁知道一种方法来获得不同的解析器的工作?或者即使解析器是问题?该网站本身不会将类名称分配给div标签,因此下面的标签只是为了返回一些内容。因为有页面上没有<div>标签

import urllib2, base64, csv 
from bs4 import BeautifulSoup 

request = urllib2.Request("http://www.oklahomacounty.org/assessor/Searches/AN-R_HistoricalView.asp?Accountno=R120682380") 
result = urllib2.urlopen(request) 
soup = BeautifulSoup(result.read(), 'html.parser') 
div=soup.findAll('div') 
print div 
+2

'无法找到具有您请求的功能的树生成器:lxml.' - 该错误听起来像您没有安装lxml库。 – yeputons

+0

如果网站没有分配任何'div'类,你为什么期望它返回一些东西而不是空的列表? –

+0

该网站使用'div'标签,但标签内没有使用'class name'属性。 –

回答

1

BeautifulSoup是报告的页面上没有<div>标签。如果你确实看到有问题的URL的内容,你会看到:

<html> 
<head> 
<META NAME="robots" CONTENT="noindex,nofollow"> 
<script src="/_Incapsula_Resource?SWJIYLWA=2977d8d74f63d7f8fedbea018b7a1d05"> 
</script> 
<script> 
(function() { 
var z="";var b="7472797B766172207868723B76617220743D6E6577204461746528292E67657454696D6528293B766172207374617475733D227374617274223B7661722074696D696E673D6E65772041727261792833293B77696E646F772E6F6E756E6C6F61643D66756E6374696F6E28297B74696D696E675B325D3D22723A222B286E6577204461746528292E67657454696D6528292D74293B646F63756D656E742E637265617465456C656D656E742822696D6722292E7372633D222F5F496E63617073756C615F5265736F757263653F4553324C555243543D363726743D373826643D222B656E636F6465555249436F6D706F6E656E74287374617475732B222028222B74696D696E672E6A6F696E28292B222922297D3B69662877696E646F772E584D4C4874747052657175657374297B7868723D6E657720584D4C48747470526571756573747D656C73657B7868723D6E657720416374697665584F626A65637428224D6963726F736F66742E584D4C4854545022297D7868722E6F6E726561647973746174656368616E67653D66756E6374696F6E28297B737769746368287868722E72656164795374617465297B6361736520303A7374617475733D6E6577204461746528292E67657454696D6528292D742B223A2072657175657374206E6F7420696E697469616C697A656420223B627265616B3B6361736520313A7374617475733D6E6577204461746528292E67657454696D6528292D742B223A2073657276657220636F6E6E656374696F6E2065737461626C6973686564223B627265616B3B6361736520323A7374617475733D6E6577204461746528292E67657454696D6528292D742B223A2072657175657374207265636569766564223B627265616B3B6361736520333A7374617475733D6E6577204461746528292E67657454696D6528292D742B223A2070726F63657373696E672072657175657374223B627265616B3B6361736520343A7374617475733D22636F6D706C657465223B74696D696E675B315D3D22633A222B286E6577204461746528292E67657454696D6528292D74293B6966287868722E7374617475733D3D323030297B706172656E742E6C6F636174696F6E2E72656C6F616428297D627265616B7D7D3B74696D696E675B305D3D22733A222B286E6577204461746528292E67657454696D6528292D74293B7868722E6F70656E2822474554222C222F5F496E63617073756C615F5265736F757263653F535748414E45444C3D313839303437323435373134393733353237352C31353133353632323135303337343937323532352C31373438323130343134383630313233363937352C333731363038222C66616C7365293B7868722E73656E64286E756C6C297D63617463682863297B7374617475732B3D6E6577204461746528292E67657454696D6528292D742B2220696E6361705F6578633A20222B633B646F63756D656E742E637265617465456C656D656E742822696D6722292E7372633D222F5F496E63617073756C615F5265736F757263653F4553324C555243543D363726743D373826643D222B656E636F6465555249436F6D706F6E656E74287374617475732B222028222B74696D696E672E6A6F696E28292B222922297D3B";for (var i=0;i<b.length;i+=2){z=z+parseInt(b.substring(i, i+2), 16)+",";}z = z.substring(0,z.length-1); eval(eval('String.fromCharCode('+z+')'));})(); 
</script></head> 
<body> 
<iframe style="display:none;visibility:hidden;" src="//content.incapsula.com/jsTest.html" id="gaIframe"></iframe> 
</body></html> 

这里没有<div>标签;页面内容通过JavaScript和iframe的组合生成。如果你想刮这个网站,你需要的不仅仅是BeautifulSoup。