use*_*912 2 python beautifulsoup web-crawler
我正在使用BeautifulSoup为漫画主机Batoto在python中构建基本数据爬虫.出于某些原因,URL有时会起作用,有时则不起作用.例如:
from bs4 import BeautifulSoup
from urllib2 import urlopen
x= urlopen(*manga url here*)
y = BeautifulSoup(x)
print y
Run Code Online (Sandbox Code Playgroud)
结果应该是页面的标签汤,但我得到了一个大墙
´ºŸ{›æP™oRhtüs2å÷%ëmßñ6Y›þ?GDŸ0ËÂ͇켮Yé)–ÀØÅð&ô]½f³ÓÞ€Þþ)ú$÷á?üv…úzW¿¾úà†lªÀí¥ï«·_ OTL_ˆêsÁÿƒÁÖ<Ø?°Þ›Â+WLç¥àEh>rýÜ>x ˆ‡eÇžù»èå»–Ùý e:›§`L_.‹¦úoÓ‘®e=‰ìÓ4Wëo’]~Ãõ¬À8>x:²âœ2¸ Á|&0ÍVpMLÎñ»v¥Ín÷-ÅÉ–T§`Ì.SÔsó넜¡×[˜·P6»?ùè?>Ô¾È]Œ—·ú£âÊgí%ضkwýÃ=Üϸ2cïÑfÙ_?×]Õꓞ?„UÖ* m³/`ñ§ÿL0³dµ·jªÅ}õ/õOXß×;«]®’ϯw‹·þ¡ÿ|Gýª`I{µœ}œí?ë–¼yÖÇ'?Wç?ëµÅþþ*ýœd{ÿDv:Ð íHzqÿÆ÷æélG-èÈâpÇßQé´^ÐO´®Xÿ?ýö(‹šëñþ"4!SÃõ2{òÿÜ´»ûE</kî?x´&ý˜`Ù)uÂï¹ã[ÏŠ²y°kÆpù}¢></uŒ¸kpž¼cì∬ƒcubÆ¡¢=en2‚påÓb9®`áï|z…p"i6pvif¨þõ“⟒></t`$ò-e></cé”r)$?ˆ)ìªÜrd&mÉÊ*ßdÒuÄ.Æ-hx@9[s=m?Ýfd2o1ˆ]‡[Ôádœtë¤qâxæ°‹qËÁ×,½ŠmʇꇢùÅýl></sí°çù¡h?‡ÌÜœbá‰æÆý¡sd~¬></zz¡ózwÎ[à!n‰Àš5¤…¸‘ݹŽ></sÃ:›3Ìæ></lÑggu?».Б@4õë\ÃñÆ:¸5ÔwÛ·…)~ÛacÑ,d³båÖ6></tg9y+wΉí%r8ƒ·}n`¼ÁÆ8˜”é²êÞ½°¶Ï></sÖ-di¨a±j9³4></ss„*w(ßibðïj*¶„)pâýÌ”a§%va{‰ò¦m mi></o³o˜Ÿ?¿Ñu-}{cÜ›a~:k²Ì></r+=ÅÌk˜c></wÓ¹âߊž‡ëf7vÑ?akÆ4ƒ‚></sz޵iÞêzâšÒ¬ú¢“âÀ#?-></qebndΑg*cxgsÆ€Ùüe¡³-ŠngÁ:?3ænæ5ï0`coäÏÖ9œ1Ða¯,æ—ªìàãÉÂð></j›h¶`à;)òiÖ š+></o”64ˆÎº9°??u—Úd¿ý¥pÎÖ‰0¢s:c?yƧ³t=ÕŸ“Ý‹41%}*,e³Ô¥ó></hiræe—';></v?fÞ«Ë¥n§Ð·¡kaììë\?`ùsõ©¸pv¦‘></bñ¼ut«w)Ø'¹ú@{)n0¡Žan¶Ë5èsª?–u–></y_x.mÅd:g}ëÕðhçð«õõ8ŠcËÕÌvžv™-šêÙ`b¹˜ùÃΓçˤÔÙtx¹?ßïǶÎgþ°r‹$ò†aÆ–š?ì<y«Ëñõo{%ׇo{ú¥Á»æ]‡></u´¬Ø¸eÖïÝtßÚ'è3®nh±ûk4È@l«s]–Åec¹ÑtmÓl|ë£Þ¼~zôéõûwêÓÑñÉÆw\soøÊiyjvØÖ$¯ÈoºÙoyã]æ5]-t^[“¡aÑ{²Å¸6¦ðtŒçm¼ÂÎz´></wà™´»äõ@©õ></mÏu:=¼þ·'?qwúËö«m„l^ˆær¥30q±ÒšŸëù></l(„7¼=xi’?¤;ö$ØË4ßoóiòyoµxÉøþ¨—«g³Ãíß{|></body></html>
Run Code Online (Sandbox Code Playgroud)
用html和body标签包装.
有时我会继续尝试并且它有效,但它是如此不一致,我无法弄清楚它的原因.
任何帮助,将不胜感激.
它似乎是urlopen有编码问题,请求工作正常:
x = requests.get("http://bato.to/comic/_/comics/rakudai-kishi-no-eiyuutan-r11615")
y = BeautifulSoup(x.content)
print y
<!DOCTYPE html>
<html lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta charset="utf-8"/>
<title>Rakudai Kishi no Eiyuutan - Scanlations - Comic - Comic Directory - Batoto - Batoto</title>
.................
Run Code Online (Sandbox Code Playgroud)
使用urlopen我们得到以下内容:
x = urlopen("http://bato.to/comic/_/comics/rakudai-kishi-no-eiyuutan-r11615")
print x.read()
?????????s+I???2???l??9C<?? ^???????dw?xzNT%??,T??A^?????9??a??E?C???W!?????????f7???s2?Px$???}I?*?'??;'3O>???'g??u®{????e.???e{?u???jf:a?
?????DS??%??X?Z??????????9?:?Dx?????\-?
?*tBW??????t?I???GQ?=?c??\:????u???S?V(?><y?C??ã?*:???D??a?g?o?sPD?m?"?,??<;v[??s???=??V2?fX??ì?Cj???~?
-~????+;V???m?|kv???:V!?hP??D?K?/`o?|?k?5???B?{?0?wa?-???iS
?>?œ??g??o?OE3jçCV<`???Q!??5?B??N??Ynd?????~??q???? _G????;T?S'?@???t??Ha?.;J?61'`??@???>>`??Z???x?@? J*u??'???-????]p?9{>??????????#?<-~?K"[AQh0HjP
0^??R?]?{N@??
...................
Run Code Online (Sandbox Code Playgroud)
所以你可以看到它urlopen不是问题BeautifulSoup.
| 归档时间: |
|
| 查看次数: |
335 次 |
| 最近记录: |