小编DaW*_*Pug的帖子

BeautifulSoup 4将HTML实体转换为unicode,但在使用print时获取垃圾字符

我正在尝试使用BeautifulSoup 4从网上抓取文本来解析它.将bs4处理过的文本打印到控制台时,我遇到了一个问题.每当我点击一个原本是HTML实体的角色时,就像’ 我在控制台上得到了垃圾字符.我相信bs4正在将这些实体正确转换为unicode,因为如果我尝试使用其他编码来打印文本,它会抱怨字符的适当缺乏unicode映射(比如u'\ u2019.)我不知道为什么打印功能对这些字符感到困惑.我已经尝试更改字体,这会改变垃圾字符,并且我在使用美国英语语言环境的Windows 7机器上.这是我的代码供参考,任何帮助表示赞赏.提前致谢!

#!/usr/bin/python
import json
import urllib2
import cookielib
import bs4

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

url = "http://api.nytimes.com/svc/search/v2/articlesearch.json?q=Tiguan\
&page=0&api-key=blah"
response = opener.open(url)
articles = response.read()
decoded = json.loads(articles)

totalpages = decoded['response']['meta']['hits']/10

for page in range(totalpages + 1):
    if page>0:
        url = "http://api.nytimes.com/svc/search/v2/articlesearch.json?\
q=Tiguan&page=" + str(page) + "&api-key=blah"
        response = opener.open(url)
        articles = response.read()
        decoded = json.loads(articles)
    for url in decoded['response']['docs']:
        print url['web_url']
        urlstring = url['web_url']
        art = opener.open(urlstring)
        soup = bs4.BeautifulSoup(art.read())
        goodstuff = soup.findAll('nyt_text')
        for …
Run Code Online (Sandbox Code Playgroud)

python unicode beautifulsoup html-entities

3
推荐指数
1
解决办法
3708
查看次数

标签 统计

beautifulsoup ×1

html-entities ×1

python ×1

unicode ×1