Mam stronę internetową, którą skrobię, która ma podobną strukturę. Chciałbym móc pobrać informacje z bloku CData.Jak mogę pobrać CData z BeautifulSoup
Używam BeautifulSoup do wyciągania innych informacji poza stronę, więc jeśli rozwiązanie może z tym pracować, to pomoże mi utrzymać moją krzywą uczenia się, ponieważ jestem początkującym pytonem. W szczególności chcę uzyskać dwa różne typy danych ukryte w instrukcji CData. pierwszy, który jest tylko tekstem, jestem pewien, że mogę rzucić na niego wyrażenie i dostać to, czego potrzebuję. Dla drugiego typu, jeśli mógłbym upuścić dane, które mają elementy html do jego własnego beautifulsoup, mogę sparsować to.
Po prostu uczę się Pythona i Beautifulsoup, więc staram się znaleźć magiczną inkantację, która da mi samą CDatę.
<!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>
Ou, to rozpaczliwie zniekształcony blok skryptu! Jeśli to jest prawdziwy znacznik, to nie zadziała nigdzie, ani XHTML, ani HTML ... – bobince
to nie jest rzeczywiste, chciałem skondensować o wiele większy blok. zgadnij, że wyrwałem za dużo. –