2016-08-28 2 views
-1

テーブルの値を行列に保存する単純なプログラムを作成しようとしています(後で行列をデータベースに送りたい)。ここでPython html divクラス

は私のコードです:

pfad = "https://business.facebook.com/ads/manager/account/ads/?act=516059741896803&pid=p2&report_spec=6056690557117&business_id=401807279988717" 
html = urlopen(pfad) 
r=requests.get(pfad) 
soup = BeautifulSoup(html.read(),'html.parser') 
mydivs = soup.findAll("div", { "class" : "ellipsis_1ha3" }) 

# no output: 
for div in mydivs: 
    if (div["class"]=="ellipsis_1ha3"): 
     print div 
# output: [] 
print(mydivs) 

私はクラスellipsis _1ha3div Sの内部値をしたいが、それが動作しない理由を私は知りません。誰でも助けてくれますか?ここで

は、元

<!DOCTYPE html> 
<html> 
<head> 
    <style> 

     .ellipsis_1ha3 
     { 
      width: 100px; 
      border: 1px solid black; 
     } 
     .a  
     { 
      width: 100px; 
      border: 1px solid black; 
     } 

    </style> 
</head> 

<body> 
<div> 
    <div style="display: inline-flex;"> 
     <div class="a">Purchase</div> 
     <div class="a">Clicks</div> 
    </div> 
    </br> 
    <div style="display: inline-flex;"> 
     <div class="ellipsis_1ha3">20</div> 
     <div class="ellipsis_1ha3">30</div> 
    </div> 
    </br> 
    <div style="display: inline-flex;"> 
     <div class="ellipsis_1ha3">10</div> 
     <div class="ellipsis_1ha3">50</div> 
    </div> 
</div> 


</body> 
</html> 

SECOND例のようなものです例のhtmlです

pfad = "http://www.bundesliga.de/de/liga/tabelle/" 
html = urlopen(pfad) 
soup = BeautifulSoup(html.read(),'html.parser') 
mydivs = soup.findAll('div', { 'class' : 'wwe-cursor-pointer' }) 
for div in mydivs: 
    if ("wwe-cursor-pointer" in div["class"]): 
     print div 
+0

入力HTMLの例を追加する必要があります。 [mcve]を参照してください。 – Carpetsmoker

+0

OK待っています。例を使って編集してください。 – nicoschuck

+0

申し訳ありません。 divは許可されません。 – nicoschuck

答えて

0

関連情報を引き出すためにlxmlおよびXPath式を使用してみてください。 Beautifulsoupはlxml上に構築されています。ドキュメントをhtml_stringという文字列にロードしたと仮定します。

from lxml import html 

h = html.fromstring(html_string) 

h.xpath('//div[@class="ellipsis_1ha3"]/node()') 
#output: 
['20', '30', '10', '50'] 
+0

すべてがうまくいきます。 – nicoschuck