擅长:python、mysql、java
<p>@Oliver W.已经提供了一个很好的答案,但是使用<code>requests</code>(<a href="http://docs.python-requests.org/en/latest/" rel="nofollow">link here</a>)可以避免记录网络呼叫,而且总体上比<code>urllib</code>好得多。在</p>
<p>如果你想让你的代码更灵活一点,你可以写一个函数,它接受国家名称和开始和结束日期。在</p>
<pre><code>import requests
import pandas as pd
import json
def load_data(country='', start_date='2014-08-09', end_date='2014-11-1'):
base = "http://www.apptrace.com/api/app/389801252/rankings/country/"
extra = "?country={0}&start_date={1}&end_date={2}&device=iphone&list_type=normal&chart_subtype=iphone"
addr = base + extra.format(country, start_date, end_date)
page = requests.get(addr)
json_data = page.json() #gets the json data from the page
ranks = json_data['rankings'][0]['ranks']
ranks = json.dumps(ranks) #Ensures it has valid json format
df = pd.read_json(ranks, orient='records')
return df
</code></pre>
<p>改变网页上的内容,看看你能从这个国家获得什么样的价值(例如加拿大是“可以”)。空弦是给美国的</p>
<p>df看起来像这样</p>
^{2}$
<p>有了pandas数据帧,您可以在导出之前导出到<code>csv</code>或合并多个数据帧</p>
<pre><code>df = load_data()
df.to_csv("file_name.csv")
</code></pre>