gpt4 book ai didi

python - 是什么让 python webscrape 输出 unicode?

转载 作者:行者123 更新时间:2023-11-30 23:11:08 26 4
gpt4 key购买 nike

我正在使用 BeautifulSoup 抓取表格及其内容,我注意到根据结束方式我得到了不同的输出 - 如果我直接打印它,我会得到一个没有 unicode 符号的输出。

html = urlopen('http://www.bcsfootball.org').read()
soup = BeautifulSoup(html)

for row in soup('table', {'class':'mod-data'})[0].tbody('tr'):
tds = row('td')
print tds[0].string, tds[1].string

给出:

1 Florida State
2 Auburn
3 Alabama
4 Michigan State
5 Stanford

等等(顺便说一句,有没有像 .head() 或索引这样的简单方法来限制行输出的数量?)

但是当我将最后一行括在括号中时,

print (tds[0].string, tds[1].string)

或者将变量分配给该行,然后打印该变量,

output = tds[0].string, tds[1].string
print output

我得到了unicode的输出:

(u'1', u'Florida State')
(u'2', u'Auburn')
(u'3', u'Alabama')
(u'4', u'Michigan State')
(u'5', u'Stanford')

这是怎么回事?提前致谢。

最佳答案

这是对象的 repr() 输出与其 str() 输出之间的差异。我还注意到您使用的是 Python 2.X,其中 print 是关键字:

>>> s=u'M\xfcrk'
>>> print s # Formatted for output display
Mürk
>>> print repr(s) # Formatted to view type and content
u'M\xfcrk'
>>> s # It is what you get by default at interactive prompt
u'M\xfcrk'

请注意,repr 版本允许查看字符串中的不可打印字符,或可能无法在当前终端上表示的字符。

当您使用带有括号的 print 时,Python 2.X 认为您正在打印一个元组。显示列表和元组等序列时,默认显示字符串的 repr 版本:

>>> print (s)       # NOT a tuple, so seems to work
Mürk
>>> print (s,) # A 1-tuple
(u'M\xfcrk',)
>>> print (s,1,2) # A 3-tuple
(u'M\xfcrk', 1, 2)
>>> print s,1,2 # prints normally.
Mürk 1 2

关于python - 是什么让 python webscrape 输出 unicode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30315690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com