2017-05-26 40 views
-1
import requests 
from bs4 import BeautifulSoup 

page = requests.get("http://api.mesowest.net/v2/authapikey=KzdBcPu5cCptvhuS1tagDhZ3CqeQB878nWl") 

soup = BeautifulSoup(page.content, "lxml") 

myWeather = soup.findAll("body") 
token = [elem.text.strip() for elem in myWeather] 
rtoken = token[0:1] 

print (rtoken) 

這樣做的結果文本替換字符是:'{"TOKEN": "7657b5ce64f4425d8a6cf30684e62b18"}'試圖片,帶,從似乎都被視爲一個字符

我試圖抓住剛令牌一塊即"7657b5ce64f4425d8a6cf30684e62b18"。我已經嘗試了token[11,43],等各種方法,但所有字符似乎都在[0]中定義,因此rtoken = token[0:1]代碼選擇了所有內容,而不是第一個字符。我也試圖剝離所需的價值以及取代,似乎無法得到任何工作。

+1

'token'是** **名單,您只使用一個列表理解*建造它*。您想要的令牌**字符串**位於列表中的第一個項目「token [0]」中。請注意,現在您已經在線公開分享了您的令牌。 – jonrsharpe

+0

謝謝你的建議。我已經擺脫了他們。 – elued

回答

0

你的「令牌」實際上是一個列表,[0]只是選擇該列表中的第一個(也是唯一的?)項目,它是一個字符串。如果你想要去除字符串本身,你必須做這樣的事情:

rtoken = token[0][11:43] 
+1

這樣做。謝謝你,Ofer。 – elued

1

@Ofer居然給了一個可怕的建議

響應內容類型爲JSON - 您不應該使用HTML解析器解析它。

使用requests響應的.json() method

import requests 

page = requests.get("http://api.mesowest.net/v2/auth?apikey=KzdBcPu5cCptvhuS1tagDhZ3CqeQB878nWl") 
token = page.json()['TOKEN'] 

print (token) 

打印:

7ed20f28d4d6436fb6083dd9f18a5241 
相關問題