共计 2477 个字符,预计需要花费 7 分钟才能阅读完成。
问题在于解码和编码修改前的代码
#-*- coding: utf-8 -*-
import requests
from lxml import etree
url = ‘http://top.baidu.com/buzz?b=1&fr=20811′
response = requests.get(url)
r = etree.HTML(response.text)
item_list = r.xpath(“//table[@class=’list-table’]//tr”)
# print(item_list)
for i in item_list[1:]:
first_name = i.xpath(“./td[@class=’first’]/span”)
keyword_name = i.xpath(“./td[@class=’keyword’]/a[@class=’list-title’]”)
try:
print(first_name[0].text)
print(keyword_name[0].text)
except:
pass
print(‘***************************************************************’)
打印输出 中文字全部为乱码
1ÂêɯĸÇ×ÀϹ«³ö¹ì
2ɱÓãµÜ¸¸×Ó´òÈË
3·ÉÐÐÔ±Íü´øÔ¿³×
4¿ì¹¸ß¹Ü±»ÅÐÎÞÆÚ
5¶«º£º½¿ÕÔÙÏÖÎ¥¹æ
6Ïȷ洴ʼÈËÈ¥ÊÀ
7öª·æ·ñÈÏÇúÆæÖ°©
8¹Â´æ6ɱ³Ô¼¦
9IG 2:0 OMG
10СS°®Çé±£ÏÊÊõ
11Öйú0-2º«¹ú
12Û¬ÁÖ¼¤¶¯Å³â²ÃÅÐ
13µÇ±´À³ÓëÕÅÁ¦ºÏÓ°
14¼ÃÄÏÎ¥½¨±ðÊû±»²ð
15ÎÞÏÞ¼« Ðļ¡Ëðº¦
16â¹û»ØÓ¦Áõ»¶Í²Û
17ÎâÒà·² 100Íò
18Àî³ÐîçΪٶùÇìÉú
19ħµÀ×æʦ±»Ëø
20ÇжûÎ÷×â½èÒÁ¹ÏÒò
21±´¿ËººÄ·°®È®
22Æ»¹ûÊÐÖµ´óËõË®
23×ß·¿´ÊÖ»ú·£10Ôª
24¹ú¼ÊÓͼÛ×òÈÕÊÕÕÇ
25¹ú×ãÂäºóº«¹ú
26shadowÌæ²¹
27ÉòÃγ½»ØÓ¦Âô¼Ù»õ
28̨ÄÏŮͯÔâĸŰËÀ
29Öк«´óÕ½Ê×·¢
30ÖÐѧΪÀÏʦÉèÁµ°®¼Ù
31ºú¾²ÆعâºÀÃÅÉú»î
32¹ËÍ¢ìÇҪȢÈçÀ¼
33Ó¢¹úÒé»á·ñ¾öÍÑÅ·
34¿ÏÄáÑǾƵ걬ը
35µÎµÎ°²È«ÔÙÉý¼¶
36ÖÜÐdzÛÕÅ°ØÖ¥ÖؾÛ
37Õã½Ñغ£¸ßËÙ¿ªÍ¨
38°×ÓîÐøÔ¼Ò¼ÐÄ
39Ê®´ó×î¶Â»¥ÁªÍø¹«Ë¾
40ÖܽÜÂ×ɹÂèÂè½üÕÕ
41º®¼ÙÌìÊýÅÅÐаñ
42°ëÊý·ÉÐÐÔ±ÍËÐÝ
43ºã´óÂò¶Ï±£ÀûÄá°Â
44лª±£ÏÕÍò·åÀëÖ°
45ÐðÀûÑDZ¬Õ¨
46º«¾ç¹¬½«ÅÄÖйú°æ
47½ûֹδ³ÉÄêÈËÕûÈÝ
48³ÂÒâºÏëÂèÂè
49Ê׸ÖÄÐÀº»÷°ÜÉϺ£
50Ñî×ϹØÏþÍ® ÍÈ
处理方式:
先查看 response 的编码 print(response.encoding) 然后对中文部分 encode(‘ISO-8859-1’).decode(‘gbk’) 附上修改过后的代码和输出
#-*- coding: utf-8 -*-
import requests
from lxml import etree
url = ‘http://top.baidu.com/buzz?b=1&fr=20811′
response = requests.get(url)
print(response.encoding)
r = etree.HTML(response.text)
item_list = r.xpath(“//table[@class=’list-table’]//tr”)
# print(item_list)
for i in item_list[1:]:
first_name = i.xpath(“./td[@class=’first’]/span”)
keyword_name = i.xpath(“./td[@class=’keyword’]/a[@class=’list-title’]”)
try:
print(first_name[0].text.encode(‘ISO-8859-1’).decode(‘gbk’))
print(keyword_name[0].text.encode(‘ISO-8859-1’).decode(‘gbk’))
except:
pass
print(‘***************************************************************’)
1 玛莎母亲老公出轨
2 佘诗曼回应蛇精脸
3 杀鱼弟父子打人
4 飞行员忘带钥匙
5 快鹿高管被判无期
6 先锋创始人去世
7 东海航空再现违规
8IG 2:0 OMG
9 济南大白宫被拆
10 济南违建别墅被拆
11 登贝莱与张力合影
12 无限极 心肌损害
13 孤存 6 杀吃鸡
14 霆锋否认曲奇致癌
15 中国 0 - 2 韩国
16 郜林激动怒斥裁判
17 小 S 爱情保鲜术
18 业主割断安全绳
19 芒果回应刘欢吐槽
20 吴亦凡 100 万
21 李承铉为女儿庆生
22 魔道祖师被锁
23 伊瓜因发烧
24 切尔西租借伊瓜因
25 贝克汉姆爱犬
26 苹果市值大缩水
27 走路看手机罚 10 元
28 国际油价昨日收涨
29 国足落后韩国
30shadow 替补
31 沈梦辰回应卖假货
32 中韩大战首发
33 台南女童遭母虐死
34 中学为老师设恋爱假
35 胡静曝光豪门生活
36 顾廷烨要娶如兰
37 英国议会否决脱欧
38 肯尼亚酒店爆炸
39 滴滴安全再升级
40 周星驰张柏芝重聚
41 浙江沿海高速开通
42 十大最堵互联网公司
43 周杰伦晒妈妈近照
44 寒假天数排行榜
45 半数飞行员退休
46 恒大买断保利尼奥
47 新华保险万峰离职
48 韩剧宫将拍中国版
49 叙利亚爆炸
50 禁止未成年人整容