2014-03-03 165 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等等。