在进行网页抓取时,我遇到了从字符串中删除逗号的问题。我的代码如下。
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似乎没有用。我虽然是一个新手,所以我无疑在这里错过了一些如此愚蠢的东西,但我确实喜欢学习并弄脏手。所以任何帮助都会非常感激。
答案 0 :(得分:2)
替换它们:
posts[0].replace(',', '')
或者使用locale
模块(如果您的语言环境的千位分隔符是逗号):
import locale
locale.setlocale(locale.LC_ALL, '')
n = locale.atoi(posts[0])
我建议不要使用正则表达式进行抓取。除非你只是Posts: (.*?)
,否则用HTML解析器解析HTML,如lxml或BeautifulSoup。
答案 1 :(得分:2)
>>> '1,092,391'
'1,092,391'
>>> '1,092,391'.replace(',', '')
'1092391'
>>> int('1,092,391'.replace(',', ''))
1092391
我在这里找不到任何内容,或Google似乎无法正常工作
我很难相信这一点。快速搜索“Python字符串替换”应该会很快到达str.replace,更不用说在Python文档中搜索它会让你更快。我得到的“Python逗号替换”的第一个结果是a question on SO来回答你的问题。
如果一切都失败了,你可以使用你显然已经知道如何使用的正则表达式。
答案 2 :(得分:0)
这是一个非常简单的方法..只需用空字符串替换,
。
>>> '1,092,391'.replace(',','')
'1092391'
答案 3 :(得分:0)
"".join('1,092,391'.split(','))