2011-12-17 14 views
1

不必要に遅いですそのような文字列プロパティを取得しないでください?オブジェクトのプレーンテキスト版を取得するために別のものを使用する必要がありますか?PythonのBeautifulSoupは

更新: これはかなり高速ですので、遅さは文字列プロパティ固有のものですね。

for olay in soup("li", {"class":"textb"}): 
    tanim = olay("strong") 
    try: 
     print tanim[0].text 
    except IndexError: 
     pass 
+0

これを再現することはできません。私にとって、 '.text'は最も遅く、他の2つはほぼ同じです。しかし、全体的な違いはあまりありません。だから問題は:あなたは何をテストしていますか? – ekhumoro

答えて

0

あなただけtanim[0]の文字列表現を印刷したい場合。あなたはちょうど行う必要があります:print str(tanim[0])。また、というプロパティがあるかどうかを確認するには、dir(tanim[0])を実行します。

for olay in soup("li", {"class":"textb"}): 
    tanim = olay("strong") 
    try: 
     print str(tanim[0]) 
    except IndexError: 
     pass 

さらに詳しい回答を提供するには、ターゲットのHTMLまたはURIを投稿して、そこから抽出しようとしているビットを指定することもできます。