0

Webスクレイピング中に文字列からカンマを取り除くのに問題があります。私のコードは次のとおりです。

import urllib

import re

htmlfile = urllib.urlopen ("http://example.com") 

htmltext = htmlfile.read ()

regex = 'Posts: (.+?)\n'

value = re.compile(regex)

posts = re.findall(value,htmltext)

print posts[0]

これでデータは正常に取得できましたが、問題は、投稿数が 1,092,391 などの値のコンマで減少していることです。1092391 などの数値を残すためにコンマを削除したいと考えています。

私は Python 2.7.1 をインストールしましたが、ここで見つけたものは何もありませんでしたし、Google も機能していないようです。私は少し初心者なので、ここでばかげたことを見逃していることは間違いありませんが、学ぶことと手を汚すことが大好きです。そのため、どんな助けでも大歓迎です。

4

4 に答える 4

2

それらを置き換えます:

posts[0].replace(',', '')

または、localeモジュールを使用します (ロケールの千単位の区切り文字がコンマの場合):

import locale

locale.setlocale(locale.LC_ALL, '')
n = locale.atoi(posts[0])

スクレイピングに正規表現だけを使用することはお勧めしません。それだけを求めている場合を除き、 lxmlPosts: (.*?)や BeautifulSoup などの HTML パーサーを使用して HTML を解析してください。

于 2013-05-07T17:07:47.053 に答える
2
>>> '1,092,391'
'1,092,391'
>>> '1,092,391'.replace(',', '')
'1092391'
>>> int('1,092,391'.replace(',', ''))
1092391

ここで見つけたものは何もないか、Google が機能しているように見えた

私はそれを信じるのに苦労しています。「Python string replace」をすばやく検索すると、str.replace にすばやくアクセスできます。Pythonのドキュメントで検索すると、さらに高速にアクセスできることは言うまでもありません。「Python カンマ置換」で得た最初の結果は、問題に対する SO の質問です。

そして、すべてが失敗した場合は、明らかに使用方法を既に知っている正規表現を使用できたはずです。

于 2013-05-07T17:07:59.710 に答える
0
"".join('1,092,391'.split(','))
于 2013-05-07T17:10:42.700 に答える
0

,これは非常に簡単な方法です..を空の文字列に置き換えるだけです。

 >>> '1,092,391'.replace(',','')
 '1092391'
于 2013-05-07T17:08:10.790 に答える