2017-07-10 81 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。