-1

Python の Beautiful Soup Library を使用して、html ファイルから多数の div を取得し、そこから div 内にある文字列 (金銭的価値) を取得しようとしています。次に、ドル記号を削除して 10 進数に変換し、大なりおよび小なり条件ステートメントを使用して値を比較できるようにします。私はそれをグーグルで調べましたが、このユニコード文字列を10進数値に変換する方法を思い付くことができないようです. 私は本当にここでいくつかの助けを借りることができました. Unicode を 10 進値に変換するにはどうすればよいですか?

これが私の最後の試みでした:

import unicodedata
from bs4 import BeautifulSoup
soup = BeautifulSoup(open("/Users/sm/Documents/python/htmldemo.html"))
for tag in soup.findAll("div",attrs={"itemprop":"price"}) :
val = tag.string
new_val = val[8:]
workable = int(new_val)
if workable > 250:
    print(type(workable))
else:
    print(type(workable))

編集:

new_val のタイプを出力すると、次のようになります。

print(type(new_val))
4

2 に答える 2

1

整数または小数点を持つことができる数値にするかどうかに応じて、int()orを使用します。float()

私が知る限り、あなたは を使用してint()います。これは機能していないと思われるので、おそらくfloat()代わりに欲しいでしょう。

于 2012-12-15T22:52:28.307 に答える
0

値は、BeautifulSoup の内部表現ではなく、Unicode であると確信していますか? PythonでUnicodeを整数に変換するのは問題ないようです。Python インタープリターの出力は次のとおりです。

In [2]: my_unicode = u'10'

In [3]: type(my_unicode)
Out[3]: unicode

In [4]: my_int = int(my_unicode)

In [5]: type(my_int)
Out[5]: int

In [6]: my_int > 2
Out[6]: True

In [7]: my_int > 10
Out[7]: False

BeautifulSoup の一部の内部型を整数に変換する際に問題が発生する可能性があります。

于 2012-12-15T22:54:19.527 に答える