xpath获取标签属性乱码解决

问题在于解码和编码修改前的代码
#-*- 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禁止未成年人整容

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理