<p>对于初学者来说可能有点复杂,但没关系</p>
<p>您要查找的数据通过XHR请求发送。(<strong>F12->;网络XHR</strong>)。您发出的请求仅返回将包含数据的<strong>html标记</p>
<p>在下面的代码中,我使用的url取自<strong>XHR</strong>选项卡。
所以我对这个url进行了查询。它返回一个<strong>JSON</strong>响应。然后,我将这个<strong>JSON</strong>响应(很容易被Python中的<strong>字典</strong>类型包含)转换成一个<strong>数据框架</strong></p>
<p>请注意,查询获得的响应包含可用天数的“所有”小时预测(相当于单击网页上的左箭头和右箭头时)</p>
<pre><code>import requests as rq
import pandas as pd
headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0"}
url = "https://api.weather.com/v3/wx/forecast/hourly/15day?apiKey=6532d6454b8aa370768e63d6ba5a832e&geocode=35.696,51.401&units=e&language=en-US&format=json"
resp = rq.get(url, headers=headers).json()
resp.keys() ## pour observer
df = pd.DataFrame.from_dict(resp) # JSON to DF
df["validTimeLocal"] = pd.to_datetime(df["validTimeLocal"], infer_datetime_format=True) # object type to datetime type
df.sort_values(["validTimeLocal"], ascending=True, inplace=True) # sort the df by datetimes
sub_df = df[["validTimeLocal", "temperature", "precipChance"]] # select variables you want
print(sub_df.iloc[20:25]) ## print some, and compare to the website
</code></pre>
<p>对<strong>粗体中的单词进行一些研究,以取得进展。还要看一下请求和bs4包</p>
<p>注意:该url包含特定于德黑兰研究的参数:地理编码等</p>