次のような構造のスクレイピングを行っているWebサイトがあります。CDataブロックから情報を取得できるようにしたいと思います。
私はBeautifulSoupを使用してページから他の情報を引き出しているので、ソリューションがそれで機能する場合は、Pythonの初心者であるため、学習曲線を抑えるのに役立ちます。具体的には、CDataステートメントに隠されている2つの異なるタイプのデータを取得したいと思います。最初は単なるテキストです。正規表現を投げて必要なものを取得できると確信しています。2番目のタイプでは、html要素を含むデータを独自のbeautifulsoupにドロップできれば、それを解析できます。
私はPythonとbeautifulsoupを学んでいるだけなので、CDataだけを提供する魔法の呪文を見つけるのに苦労しています。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Cows and Sheep
</title>
</head>
<body>
<div id="main">
<div id="main-precontents">
<div id="main-contents" class="main-contents">
<script type="text/javascript">
//<![CDATA[var _ = g_cow;_[7654]={cowname_enus:'cows rule!',leather_quality:99,icon:'cow_level_23'};_[37357]={sheepname_enus:'baa breath',wool_quality:75,icon:'sheep_level_23'};_[39654].cowmeat_enus = '<table><tr><td><b class="q4">cows rule!</b><br></br>
<!--ts-->
get it now<table width="100%"><tr><td>NOW</td><th>NOW</th></tr></table><span>244 Cows</span><br></br>67 leather<br></br>68 Brains
<!--yy-->
<span class="q0">Cow Bonus: +9 Cow Power</span><br></br>Sheep Power 60 / 60<br></br>Sheep 88<br></br>Cow Level 555</td></tr></table>
<!--?5695:5:40:45-->
';
//]]>
</script>
</div>
</div>
</div>
</body>
</html>