我目前要擷取一些空氣的資料,然後我使用
https://pm25.lass-net.org/data/history.php?device_id=74DA38EBF902
裡面的資料,我查詢他的html架構只有 pre
起初使用BeautifulSoup,可以把全部的東西抓下來,可是不知道要怎麼抓特定的值
url = requests.get("https://pm25.lass-net.org/data/history.php?device_id=74DA38EBF902")
soup = BeautifulSoup(url.text,'html.parser')
ele = soup.find('pre')
print(ele)
會顯示None,把'pre'改成'a'、'head',都是None,雖然本來他html的架構就沒有其他的
想請問有甚麼方法可以用爬蟲把一些特定的訊息抓下來
像是s_h0、s_t0
https://pyfiddle.io/fiddle/06b98adb-9a22-4aa3-a352-c343d7e686d2/?i=true
import requests
import json
res = requests.get("https://pm25.lass-net.org/data/history.php?device_id=74DA38EBF902")
data = json.loads(res.text)
AirBox = map(lambda x: x.get(list(x.keys())[0]) , data['feeds'][0]['AirBox'])
s_t0 = map(lambda x: {"s_t0":x.get("s_t0", ""), "timestamp": x.get("timestamp")}, AirBox)
print(list(s_t0))
想問一下,我把
data = map(lambda x: {"timestamp": x.get("timestamp"), "s_d0":x.get("s_d0",""),"s_h0":x.get("s_h0",""),"s_t0":x.get("s_t0", "")}, AirBox)
裡面的"timestamp"、"s_d0"、"s_h0"、"s_t0"刪除(冒號前面的),可是顯示出來的排法會是沒有順序的
請問要如何解決呢?
你刪掉就不會有順序了,因為會變成set,而不是dict。
你可以改成tuple。
data = map(lambda x: (x.get("timestamp"), x.get("s_d0",""), x.get("s_h0",""), x.get("s_t0", "")), AirBox)
請問timestamp格式是否和實際時間有固定差別,似乎是+8小時就可以調整?