我对python 3.5土耳其语字符有疑问。
您可以在图片中看到问题。我该如何解决这个问题?
我的代码如下。你可以看到print(blink1.text)
给出了问题的最后一行,但print("çÇğĞıİuÜoÖşŞ")
没有问题,尽管它们都是相同的
from bs4 import BeautifulSoup
import requests
r = requests.get("http://www.ensonhaber.com/son-dakika")
soup = BeautifulSoup(r.text)
for tag in soup.find_all("ul",attrs={"class":"ui-list"}):
for link1 in tag.find_all('li'):
for link2 in link1.find_all('a',href=True):
print("www.ensonhaber.com" + link2['href'])
print("\n")
print(link2['title'])
for link3 in link1.find_all('span',attrs={"class":"spot"}):
# özet kısmı print(link3.text)
print("\n")
rbodysite = "http://www.ensonhaber.com"+link2['href']
rbody = requests.get(rbodysite)
soupbody = BeautifulSoup(rbody.text)
for btag in soupbody.find_all("article",attrs={"class":""}):
for blink1 in btag.find_all("p"):
print(blink1.text)
print("çÇğĞıİuÜoÖşŞ")
我的输出:
Hangi Åehirde çekildiÄi bilinmeyen videoda bir çocuk, ailesiyle yolculuk yaparken gördüÄü trafik polisinin üÅüdüÄünü düÅünerek gözyaÅlarına boÄuldu. Trafik polisi, yanına gelen çocuÄu "Ben üÅümüyorum" diyerek teselli etti.
çÇğĞıİuÜoÖşŞ
答案 0 :(得分:1)
问题肯定是错误的代码页。 Python与代码页无关,无论是print还是beautifulsoup都不会为你修复它。
该网站似乎以UTF-8提供所有页面,所以我认为您的终端是其他的东西。我不知道字符集有什么ı但是损坏字符的位置及其值表明Windows-1254。您需要调用iconv,但首先需要阅读元标记<meta charset=
,因为它不一定是UTF-8。另一方面,您还需要了解终端的编码,但这很难获得。