2017-07-10 12 views
0

これは他の多くのSOの投稿にかなり近いと思いますが、私はこれらの質問と私が見ている問題への答えを調整するのに問題があります。BeautifulSoupは空のリストを返します - 他のパーサーがPythonのエラーを引き起こしています

下記のコードを実行すると、BeautifulSoupが[]を返しています。私はSOの情報を探していて、この記事でパーサーと既知のバグについて語っています:Html parsing with Beautiful Soup returns empty list MacBook Proの上

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

私は、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以上のものが必要になります。

関連する問題