2017-07-12 60 views
0

タイトルとして、私はappstoreからのレビューと料金、日付を取得する必要があります。 は、私がここに 私はまだpythonでappstoreのレビューを取得できますか?

GitHubの

からgithub.com/don9z/appstoreを得たコードです:

import feedparser 
from datetime import datetime 
import calendar 

app_contries = { 
'China':'cn', 
'United States':'us'} 

app_sortby = { 
'Most Recent':'mostRecent', 
'Most Helpful':'mostHelpful', 
# 'Most Favorable':'mostFavorable', 
# 'Most Critical':'mostCritical'} 

def mk_appfeed(app_id, country_code, sortby=app_sortby['Most Recent']): 
return 'https://itunes.apple.com/%s/rss/customerreviews/id=%s/sortBy=%s/xml' %\ 
    (country_code,app_id, sortby) 

def parse_feed(url): 
review_map = {} 
feed = feedparser.parse(url) 
review_map.setdefault('title', feed.feed['title']) 
review_map.setdefault('updated', 
         calendar.timegm(feed.feed['updated_parsed'])) 

if not feed.entries: 
    print 'Get nothing from ' + url 
    return None 
review_map.setdefault('apptitle', feed.entries[0]['title']) 
review_map.setdefault('applink', feed.entries[0]['id']) 

reviews = [] 
for entry in feed.entries[1:]: 
    reviews.append({'title': entry['title'], 
        'content': entry['content'][0]['value'], 
        'author': entry['author'], 
        'rating': entry['im_rating'], 
        'updated': calendar.timegm(entry['updated_parsed']) 
       }) 
review_map.setdefault('reviews', reviews) 
return review_map 

def print_reviews(review_map): 
if not review_map: 
    print 'Input None' 
    return 

print 'Title: %s' % review_map['title'] 
print 'Updated: %s' % datetime.fromtimestamp(review_map['updated']) 
print 'App Name: %s' % review_map['apptitle'] 
print 'Link:  %s' % review_map['applink'] 

index = 0 
for entry in review_map['reviews']: 
    index+=1 
    print '*** %d ***' % index 
    print 'Title: %s' % entry['title'] 
    print 'Content: %s' % entry['content'] 
    print 'Author: %s' % entry['author'] 
    print 'Rating: %s' % entry['rating'] 
    print 'Updated %s' % datetime.fromtimestamp(entry['updated']) 

def get_app_reviews(app_id, country_name, sortby='Most Recent'): 
print_reviews(parse_feed(mk_appfeed(app_id, app_contries[country_name], 
            app_sortby[sortby]))) 

と私はちょうどcall.py

import review 
review.get_app_reviews('506627515', 'United States') 

が、コマンドの戻り使用

Title: iTunes Store: Customer Reviews 
Traceback (most recent call last): 
File "call.py", line 3, in <module> 
review.get_app_reviews('506627515', 'United States') 
File "/Users/Eric/Desktop/appstore-master/review.py", line 71, in get_app_reviews 
app_sortby[sortby]))) 
File "/Users/Eric/Desktop/appstore-master/review.py", line 54, in print_reviews 
print 'Updated: %s' % datetime.fromtimestamp(review_map['updated']) 
AttributeError: 'module' object has no attribute 'fromtimestamp' 

datetimeに問題があるようです 私はちょうどプロ私のpythonの方法により をblem

ニーズがdatetimeでそう

+0

コード全体を投稿する必要があります。エラーメッセージのコマンドはご質問にはありません。 – patrick

+0

完了です。ただ問題がどこにあるかを見つける:)) –

答えて

0

を助ける2.7.0であると私はバージョンの問題だと思う?、fromtimestampコマンドはdateモジュール、CF docsです。したがって、Unixタイムスタンプを返しますreview_map内アイテムがcalendar.timegm()によって作成されていることを

import datetime 
print 'Updated: %s' % datetime.date.fromtimestamp(review_map['updated']) 

ノート、CF docsにコードを変更します。あなたのentryオブジェクトが正しい形式を返した場合だけ、例示の目的のために、完全な手順は、このように

​​

返しdatetime.date(2017、7、12)

のようなものである

これはうまくいくはずです。

+0

@エリック・ヤンはこれが助けてくれることを願っています!もしそうなら、私の答えを受け入れるように自由に感じてください... – patrick

関連する問題