2016-09-01 15 views
-1

私は美味しいスープを初めて使っています。 HTMLファイルからデータを取得する必要があります。美味しいスープ条件付きクエリ

<div class="ques_ans_block"> 

    <div class="question"> 
     <p>is this correct ?</p> 
    <div> 
    <p class="answer"></p> 

    <div class="moreinfo" style="display: block;"> 
     <p class="answer"> <p> 
     <p class="answer"></p> 
    </div> 

</div> 

条件は、 "moreinfo" divが存在するか、または存在しないことがあります。

私はques_ans_blockごとに質問と回答を見つける必要があります(存在する場合は「moreinfo」からの回答を含む)innertext?

+0

これを行うには、Pythonロジックを作成するだけです。 – sisanared

+0

私は基本を知っていますが、それに関連する条件は知っていません。 – Bond

+0

私の答えは、あなたが問題を解決する方法についてのヒントを教えてくれますか? – sisanared

答えて

0

これは、質問、回答、FaqIDを含むjsonとして出力します。

import bs4 
import json 
import codecs 
arrayList = [] 
bsp = bs4.BeautifulSoup(open('input.html')) 
ques_ans_block = bsp.find_all("div", {"class": "ques_ans_block"}) 
s = "" 
count = 1 
for i in ques_ans_block: 
    data = {} 
    q = i.select('.question') 
    for a in q: 
     s+=a.text+"\n" 
    for a in q: 
     a.extract() 
    data["Question"] = s 
    del i['.question'] 
    v = "" 
    a = i.select('p') 
    for a in a: 
     v+=a.text+"\n" 
    a = i.select('li') 
    for a in a: 
     v+=a.text+"\n" 
    data["Answer"] = v 
    data["FaqId"] = count   
    print "\n" 
    arrayList.append(data) 
    count = count + 1 
    s = "" 

#print arrayList 
with codecs.open('output.json','wt','utf-8') as outfile: 
    json.dump(arrayList, outfile, indent=4)