如何将拼写的html从奇数字符转换为常规字/代码

时间:2015-12-07 15:13:06

标签: python encoding beautifulsoup

我有一个beautifulsoup4刮刀,可以从页面中提取html。但是像这样印刷的那个:

print str(soup)[:1000]
print '....'
print str(soup)[-100:]

给出:

<html><head></head><body>í}ÛvÛ8¶à»¿¥êÉS"u³ìȶœ•ØN—ÏÊ­ËÉÔôJey�$$1æ­x±¬Jüóó2�çuûÎGœ/™½�/’e;Ž]g•º:&amp;    `ccccßpÛÿáèíáû¾;&amp;³Øu6öд�ö„8199&amp;;Ÿöñ;1Eã†çkŸ#HÓl6žŠ?;
âPo:n0¯q@öøÈ&lt;Ëž|Ò´âzàÖ‚ótœµŒH    "À¡,+Ôšr‚Œ6¿þÐ:9Þ„â�Pƒ/¯i„ìϵð��
þï¾ËbJÌ
#�I&lt;Ñž6”¤Yû=±/Æ�ÿ¥}x®ún@cÛpXƒ˜¾3Ê��™5e…’uÙ¸qa³yà‡±’yn[ñll±
                                                                     ÛdiÛ³c›:ZdR‡�{
Ò©‚
v-ߥ¶wvÁB{²P }ƒmooõ˜Õ�0£;éo�Œ§ëwÙ`Ç

....

ó¯ÿ×''9¦!ùHÌ|�íwD~Yر½s2g܈â…âcкYÈ&amp;ãFÇŒ¢
þ&gt;ë¥äÈK˜Ôó=Ú˜èÌçsÝä˜è¦ïvLßq˜Û¾uÄéÌóÏú�*¨hT5“˜Ø@†‰�Èvé”u.5ñMV1¡ø®Ã?�”邾Aè,Œã†?ÝEH
m!ÍJÌXöH]~$ŽR`]²Jˆ«PáÍQ@#3îVHf»ÓŽÄRÒLóü&gt;4Ûd1³4“…ÔµM-ô#6õ+ÏRIÒ¢8±l_ë
Ï{Ör¾ÛÈï=“ðŠ1></bgmªy*ë
                           ”Âky;_x·?
                                     Ó+[”nÚ‘kûÓ}kº¨´!`h></body></html>

有谁知道如何将该文本转换为清晰易读的内容?或者任何人都可以解释发生了什么。

注意:  我正在抓的网站是:http://www.caeden.com/collections/linea_no_2/?variant=CAE20101

编辑1。

 print soup.prettify()

给出:

...

    �¥n˜‘¼ó’pDkù‹‹“^F,ªÌ°jå;?h£T�‹Þ‰û?¾Ráu)úÛ+YaµUx\4#ïy×Å
                                                                           ŽÖKí°ú‚
                                                                                   $HÞ–ñ–õvIìýºp^ýó¬‘s†åa¥Z
    ˆNž›NÒ©OmŽKþô8L\óÀÇ2S.âcÍ•"A¦â,D4ƒ
                                           +¹t6~Õ¹øØÞ&amp;çÏ×…,®ôp•¦ç¡ë$à½Éœ_À´æ{€˜‹½PC»iè‚uaKª]´Ü€¬s§&amp;(ÉƤ~nRç¦LåtÁÜÒ°ª¦Ð-W¸ßåÌõ
    ¬¯¿U e­¾Þî�€zg  Da+”nüêàïÞ”]yçF@›Ã©pcüËÝǸ!¢Õ;µ78Š_þǯ  aÅ…�âW¸òkÂXu¿¤øo™ü*P–®«¿ì¥•_“zå

                                                                                                          +Å/måF~›ì âKñËÞ•¹!¦Õµ°¥wl~¸j/ë¿ü•�_ÂâÝŸâW{èF ®;œK£¸Ö¨ÉZ¹OÃýÄ.5tYôç^FhÃîvűÝÑ&amp;¯þ‰+E½þZjßúÆ`Þ–]·õ”Þ�”]Xߦuó­Y5ß°5óÍY1«æºÃÒ»
´»;ÒM÷Ù뺛ú
            î4yCet«™I©d éá
                            J–&gt;â~&amp;oÌkfo5D@Ä$âÙw“Èáü¯5ikmÖž·�vض?™“ÖD�h¿m‹°üGΈ¿Ž’üÛŸ +¨eýÄݲO·²o*õ
        <kÙrÚÔŸfüæö¡£þ±ˆ‰�iiúÍ´ôÝdc[âÏÈ9‚Ú0<9ª¸?qô]žqýÌ;ÚmÉ*gï?…#maîž[ kn±í£p¥ÁÒѱèv¨âhš�qÊb™+x¶|k§¯¨Í="" ÿûî‡#~="">
         ¼J©À±˜&gt;c×g-¤ÊMka:†»ho®Îh7%›ífì8n ©ÉTqXØaÎøÝeg¢q·d ~
                                                                    šÛG[[€f«i:&amp;wTú}èʽ½ÝA¿?`þ=3]”�7tÊø¡·í£Ì3Ç•�|¢ÄQùz
¯·àO…�–&lt;¢åŸRÙ@‰9ŽúOMcTé ›�b žÄíŽz�-œô   bÌ=wŒÚq·•Þî''6À¢TÍrxˆø1ˆ=Ù8[:霊’ü
¾¸ÁÜU�¥Œá"
          ±FGŽ•Sô�i´šÖn!ñ?‘p1¨ÅÆÔÆ[@I·�IüðÔ8Ž÷©ä¦šø[Qÿ(Þ`Lr½@j-CSrd0;ôðixí`äOòTʺ'yØGÝ'%ÈGb)ô&gt;@‚ôpšÌ˜É�ãâw’î_]Ð7¨Jþ+î/U1ìlzoaÂÅðåìôùùóWqœÆ8ÈBä[‡¤$?’ÃÌòB‘±È¶ê¾‘R\å{4œaý®+‹+Iâ|‰º3Ö-¦þ˜„¤;úÛÓú»]ã`§;Ôé^w`è;Ã]mo—í÷´Šâ¼\oØ?ØÝé
÷÷+rP]ûtºWÌÉåUwv÷•¡Êöv»z²ß§Ú`Gë©1ôõÞ Ëvz{ÆN
    †îŒK,É„ZãoŽ¤þ™¥úê   (ÇÈE\.ûd§o©ÿÒÊÈ nka(Núµ{Ž‰`Ãêøܵ†‘±&lt;уûT‹9Óp™~øa;&lt;¾%Ñ5(_Wð½ùá(É­k\–µ¶ã¤A€í;P€K x  BÇ�ê{fX Í•ÇÖAÙÜét^‚Ô„!3Ë4"j&amp;ábˆp&gt;˜ÅòL¥†ñ³¼ä;–™ßjž¿þéL¬&amp;¿ä’˜fÚIc«äo®‹�±Oc~Fxey‹
šÎ4“û$nVŠã£ìBcÎü+d„žL N¥ù³åpvy&lt;¥×íu‡Íí£\5æ„´
UåQÀ� Á¾�9³nXCñ«\�”ÛS\µw˜9Ý!ÇtÒîå5ÊlYåö¢„»± )àŸâäýa)¾óG 8?qÖY‡Ö+K}}jïý�¨L\tWüÒÔÖ¢å+wñÍÒùY´„§Å­ã8Χ刈;Š~w]ÿÊ]ó_Š®ñÝNß,eÓ+§$qI“üJSÍî$RÅ]¬Ím•‚­6:XšÛ�³Yß™ºµ‡Õ7m¡«er§Ò$3—ÀUêƒkY¸÷7�ù
         ÝOQx'Å?þ=bþRåΙÎZŸlÓù‘Û¸‡¾Û-ë „´c­ãŠ7¿OºüC93"™Õf
zÐÊP«²Ûc½Ï£%^&gt;&amp;ŸnŽ²t‚T•-dmØË×â¥q„__¿y{ñúÕéËCÝMõ‰ó·ˆï·“6&amp;1aX„æÄÄ^næCPlÅÇqe¡•ÀTÝ‚±tøéY/òõI/¢¾ßR¹œÎ1oâ×b#†øJ¢^‘‹s®pG�Üf·¶_N›æ„LfwÞõûD¶� ›ŠÝy›…kò�B=¼æ3íø3$·šÂ&amp;k’Q¦5ËÕù–~D2tu×"OI’ñP&lt;ò9ˆ¶+�ªó'Lqc8EË8ÌŸ³ÎpØëѽƒ=m²{0Ø7Øžc¹w0Deü(‡pPÍÍ2¤mt$‘zO’GÛ$Hm‹íV¥]Q1ð
                                                                                                           V„î[h—ƒýð1�
½jãNÚ’�Å]„x�
            ÷¢}²õÿÁ"`䣬
        </kÙrÚÔŸfüæö¡£þ±ˆ‰�iiúÍ´ôÝdc[âÏÈ9‚Ú0<9ª¸?qô]žqýÌ;ÚmÉ*gï?…#maîž[>
       </pšÌu¬´7w\eÔóòx©ÞÌ“>
      </h×À:'•<#¨ô�†„j–o’á>
     </gx Á&4²beŠ‚t±|§º"&¿¹£¦=Ù’¬ù–‘-ò¢[¯ìæÙn>
    </hõýaªg>
   </wqØÝ2*öðòÈ:—êšæ:ä>
  </c3e¼ùš¶Ž;€²>
 </body>
</html>

1 个答案:

答案 0 :(得分:0)

在这种情况下,您正在做的是在终端中不显示不支持文本的字符。您需要做的是打开文本或理想的html文件并编写内容。这是另一种解决方案:

result = open('result.html', 'w')
result.write(soup.prettify())
result.close()