Kazıma yaptığım bir web sitem var. CData bloğundan bilgi almak istiyorum.BeautifulSoup'dan CData'yı nasıl yakalarım?
Sayfanın diğer bilgilerini çekmek için BeautifulSoup kullanıyorum, bu yüzden eğer bu çözüm işe yarayabilirse, bir python acemi olduğum için öğrenme eğrimi azaltmaya yardımcı olur. Özellikle, CData deyiminde gizlenen iki farklı veri türüne erişmek istiyorum. sadece metin olan ilk şeyden eminim ki ona bir regex atabilir ve ihtiyacım olanı alabilirim. İkinci tür için, eğer html öğelerine sahip olan verileri kendi güzel formuna bırakabilirsem, onu ayrıştırabilirim.
Ben sadece python ve güzelsoup öğreniyorum, bu yüzden bana sadece CData verecek sihirli büyüyü bulmaya çalışıyorum.
<!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>
Bu çok kötü biçimlendirilmiş bir komut dosyası bloğu! Bu gerçek işaretleme, aslında XHTML ne de HTML ... – bobince
gerçekte herhangi bir yerde çalışmayacak, çok daha büyük bir bloğu yoğunlaştırmak istedim. sanırım çok fazla yırttım. –