2017-07-18 6 views
0

私は、AppleのストアのアプリのウェブサイトでAPPの名前をスクラブルして、端末にプリントアウトしたいと考えています。ここでPython:エラー:[<__ main __。class instance at 0x>]

は私のコードです:ここでは

from lxml import html 
import requests 

class AppCrawler: 
    def __init__(self,starting_url,depth): 
     self.starting_url = starting_url 
     self.depth = depth 
     self.apps = [] 

    def crawl(self): 
     self.get_app_from_link(self.starting_url) 

    def get_app_from_link(self,link): 
     start_page = requests.get(link) 
     tree = html.fromstring(start_page.text) 

     name = tree.xpath('//h1[@itemprop="name"]/text()')[0] 
     app = App(name) 
     self.apps.append(app) 

class App: 
    def __init__(self,name): 
     self.name=name 
    def __str__(self): 
     return ("Name:" + self.name) 

crawler = AppCrawler('https://itunes.apple.com/us/app/candy-crush-saga/id553834731',0) 
crawler.crawl() 
################ print the list ################################## 
print crawler.apps 
################ print the element in the list ################### 
for app in crawler.apps: 
    print app 

は、私は、端末で得るものです:

[<__main__.App instance at 0x029C3EE0>] 
AppName:Candy Crush Saga 

私の質問は:

リスト印字[< メインである理由 .App instance at 0x029C3EE0]] "の"リストの要素を印刷するループは正確に正しいですか?

+3

を実装し、 '__repr__'方法はありません' __str__'、と呼ばれています。 –

答えて

1

試してみてください。

for app in crawler.apps: 
    print str(app) 

またはリスト内

__repr__代わりの__str__

関連する問題