问题在于解码和编码
修改前的代码
#-*- 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ɱ³Ô¼¦
9
IG 2:0 OMG
10
СS°®Çé±£ÏÊÊõ
11
Öйú0-2º«¹ú
12
Û¬ÁÖ¼¤¶¯Å³â²ÃÅÐ
13
µÇ±´À³ÓëÕÅÁ¦ºÏÓ°
14
¼ÃÄÏÎ¥½¨±ðÊû±»²ð
15
ÎÞÏÞ¼« Ðļ¡Ëðº¦
16
â¹û»ØÓ¦Áõ»¶Í²Û
17
ÎâÒà·² 100Íò
18
Àî³ÐîçΪٶùÇìÉú
19
ħµÀ×æʦ±»Ëø
20
ÇжûÎ÷×â½èÒÁ¹ÏÒò
21
±´¿ËººÄ·°®È®
22
Æ»¹ûÊÐÖµ´óËõË®
23
×ß·¿´ÊÖ»ú·£10Ôª
24
¹ú¼ÊÓͼÛ×òÈÕÊÕÕÇ
25
¹ú×ãÂäºóº«¹ú
26
shadowÌæ²¹
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
东海航空再现违规
8
IG 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
国足落后韩国
30
shadow替补
31
沈梦辰回应卖假货
32
中韩大战首发
33
台南女童遭母虐死
34
中学为老师设恋爱假
35
胡静曝光豪门生活
36
顾廷烨要娶如兰
37
英国议会否决脱欧
38
肯尼亚酒店爆炸
39
滴滴安全再升级
40
周星驰张柏芝重聚
41
浙江沿海高速开通
42
十大最堵互联网公司
43
周杰伦晒妈妈近照
44
寒假天数排行榜
45
半数飞行员退休
46
恒大买断保利尼奥
47
新华保险万峰离职
48
韩剧宫将拍中国版
49
叙利亚爆炸
50
禁止未成年人整容
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。