sublime-text - python爬虫编码问题
PHP中文网
PHP中文网 2017-04-18 10:10:29
0
8
434
PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(8)
巴扎黑

Essayez sans tuples

print h2, a

Cela devrait toujours être un problème d'encodage résiduel

Lors de l'impression, le __str__() du tuple est en fait appelé

>>> h = u'你好'
>>> (h, 8).__str__()
"(u'\u4f60\u597d', 8)"
巴扎黑

Cela est dû à différentes méthodes d'encodage. L'encodage de la plate-forme Windows est généralement gbk ou isoxxx. Vérifiez la méthode d'encodage du Web (vous pouvez la vérifier dans Chrome), puis convertissez l'encodage en celui du système. et tout ira bien

小葫芦

En fait, vous pouvez afficher le chinois en affichant h2 seul. Si vous devez afficher des tuples comme vous le faites, reportez-vous au code suivant

.
from __future__ import unicode_literals
#-*-coding:utf-8-*-
import requests
from bs4 import BeautifulSoup
res = requests.get('http://news.sina.com.cn/china/')
res.encoding='utf-8'
soup=BeautifulSoup(res.text,'html.parser')
for news in soup.select('.news-item'):
    if len(news.select('h2'))>0:
        h2=news.select('h2')[0].text
        a=news.select('a')[0]['href']
        test = str((h2, a))
        print(test.decode("unicode-escape"))
巴扎黑

Lorsque vous rencontrez des problèmes de codage, et que vous avez également besoin de comprendre les origines historiques du codage, vous pouvez lire cet article, http://foofish.net/python-cha... Vous saurez comment analyser le problème lorsque vous rencontrez du codage dans le futur.

大家讲道理

python3

PHPzhong

Le début de u'' indique qu'il est déjà unicode. Il n'y a pas de problème avec l'encodage, mais il y a un problème avec la façon dont vous imprimez. Si vous le modifiez en 2.7, ça devrait aller

print '%s,%s'%(h2, a)
小葫芦

Après l'avoir lu, convertissez-le simplement directement en chaîne

Ty80

imprimer(h2 + a)

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal