2014-03-03 111 views
-5

好吧我今天一直在网上阅读,并没有找到任何真正适用于此的东西。Python字符串

这是我目前有

import urllib.request 

url = 'http://www.bloomberg.com/quote/PLUG:US' 

sock = urllib.request.urlopen(url).read() 

string2=sock.replace("data_values","show_1D") 

print (string2[1]); 
我无法把数据在data_values区和show_1D

这是一个股票的数据,我感到困惑之间

谢谢

我也用这个作为参考和例子甚至不会工作

http://www.tutorialspoint.com/python/string_split.htm 
+0

当你打印(字符串2)时,你会得到什么?另外,不需要分号。 – 2rs2ts

+2

你的问题不是很清楚,但你似乎需要're.sub(r'data_values \ s *(。*?)\ s * show_1D',“\\ 1”,sock)' – devnull

+0

Devnull我是困惑。我需要的只是data_values和show_1D之间的数据。我正在尝试你给我的东西,我可能已经足够了解它的工作。此外,我在这里找到的大部分例子都没有工作。 python是否改变了近几年的语法呢? – user3375681

回答

0

如果你看到正在下载的,你可以看到数据在UTF编码-8。

只需添加decode('UTF-8')方法来下载转换的东西的Python 3可以一起工作:

import urllib.request 

url = 'http://www.bloomberg.com/quote/PLUG:US' 

sock = urllib.request.urlopen(url).read().decode('UTF-8') 
print(sock.count("data_values"), sock.count("show_1D")) 
# 1 1 
string2=sock.replace("data_values","show_1D") 
print (string2.count("data_values"), string2.count("show_1D")) 
# 0 2 

虽然这可能解决这一问题,确实使用HTML解析器,而不是简单的正则表达式的或字符串替换到处理XML和HTML,如beautiful soup等等。