2017-06-22 4 views
0

私はちょうどテキストベースのブラウザゲームをプレイすることによって "pythonを学ぶ"旅を始めました。私は売ることのできるさまざまな武器をたくさん買ってきましたが、まずその価値について知りたいと思います。 しかし、私は、テーブルなどのうちの特定のデータを取得する方法を見つけ出すことはできません。セレン、pythonは、ID、クラスなどなしのテーブルから特定のデータを抽出します

マイコード:

from selenium import webdriver 
from bs4 import BeautifulSoup as bs 
browser = webdriver.Firefox() 
browser.get("http://www.mafiaway.nl/shop.php?p=sell") 
source = browser.page_source 
soup = bs(source, "html.parser") 
for td in soup.findAll("td"): 
    print(td.text) 

がこれを取得します。

Mes 

Mes Inclusief training en gratis herregistraties 
Geld terug 
$5.700 >>> is what i want 
Minpunten 
Power -30 
Aantal 
Nog 8.758.118 >>> is what i want 
Verkopen 
+ like 50 other tables like this 

ので、基本的に私のコードを出力しますテーブルが、私だけで上から2つのオブジェクトがしたい...

htmlコード=

<table align="center" width="100%"> 
    <form method="post"> 
    </form> 
    </table> 
    <table align="center" cellspacing="1" width="610"> 
    <tbody> 
    <tr> 
    <td class="subtitle" colspan="6"> 
     Mes 
    </td> 
    </tr> 
    <tr> 
    <td align="center" class="maintxt" rowspan="5" width="150"> 
     <img height="150" src="images/item-Knife.gif"/> 
    </td> 
    <td class="maintxt" colspan="5" width="450"> 
     <span class="tekstheader"> 
     Mes 
     </span> 
     <br/> 
     <br/> 
     <i> 
     Inclusief training en gratis herregistraties 
     </i> 
    </td> 
    </tr> 
    <tr> 
    <td class="maintxt" width="225"> 
     <img class="icon" src="images/icons/money.png"/> 
     <b> 
     Geld terug 
     </b> 
    </td> 
    <td class="maintxt" colspan="4" width="225"> 
     $5.700 
    </td> 
    </tr> 
    <tr> 
    <td class="maintxt" width="225"> 
     <img class="icon" src="images/icons/chart_pie_add.png"/> 
     <b> 
     Minpunten 
     </b> 
    </td> 
    <td class="maintxt" colspan="4" width="225"> 
     <span class="errorbold"> 
     <b> 
     Power -30 
     </b> 
     </span> 
    </td> 
    </tr> 
    <tr> 
    <td class="maintxt" width="225"> 
     <img class="icon" src="images/icons/group.png"/> 
     <b> 
     Aantal 
     </b> 
    </td> 
    <td class="maintxt" colspan="4" width="225"> 
     Nog 8.758.118 
    </td> 
    </tr> 
    <tr> 
    <td class="maintxt" width="225"> 
     <img class="icon" src="images/icons/basket.png"/> 
     <b> 
     Verkopen 
     </b> 
    </td> 
    <td align="center" class="maintxt" colspan="4" width="225"> 
     <input name="num" size="4" type="text"/> 
     <input name="koop" type="submit" value="Verkoop"/> 
     <input maxlength="20" name="id" type="hidden" value="1"/> 
    </td> 
    </tr> 
    </tbody> 
    </table> 
    <br/> 
    <form method="post"> 
    <table align="center" cellspacing="1" width="610"> 
    <tbody> 
    <tr> 
     <td class="subtitle" colspan="6"> 
     Walter P99 
     </td> 
    </tr> 
    <tr> 
     <td align="center" class="maintxt" rowspan="5" width="150"> 
     <img height="150" src="images/item-Walter_P99.gif"/> 
     </td> 
     <td class="maintxt" colspan="5" width="450"> 
     <span class="tekstheader"> 
     Walter P99 
     </span> 
     <br/> 
     <br/> 
     <i> 
     Inclusief training en gratis herregistraties 
     </i> 
     </td> 
    </tr> 
    <tr> 
     <td class="maintxt" width="225"> 
     <img class="icon" src="images/icons/money.png"/> 
     <b> 
     Geld terug 
     </b> 
     </td> 
     <td class="maintxt" colspan="4" width="225"> 
     $14.250 
     </td> 
    </tr> 
    <tr> 
     <td class="maintxt" width="225"> 
     <img class="icon" src="images/icons/chart_pie_add.png"/> 
     <b> 
     Minpunten 
     </b> 
     </td> 
     <td class="maintxt" colspan="4" width="225"> 
     <span class="errorbold"> 
     <b> 
     Power -75 
     </b> 
     </span> 
     </td> 
    </tr> 
    <tr> 
     <td class="maintxt" width="225"> 
     <img class="icon" src="images/icons/group.png"/> 
     <b> 
     Aantal 
     </b> 
     </td> 
     <td class="maintxt" colspan="4" width="225"> 
     Nog 37.251 
     </td> 
    </tr> 
    <tr> 
     <td class="maintxt" width="225"> 
     <img class="icon" src="images/icons/basket.png"/> 
     <b> 
     Verkopen 
     </b> 
     </td> 
     <td align="center" class="maintxt" colspan="4" width="225"> 
     <input name="num" size="4" type="text"/> 
     <input name="koop" type="submit" value="Verkoop"/> 
     <input maxlength="20" name="id" type="hidden" value="2"/> 
     </td> 
    </tr> 
    </tbody> 
    </table> 
+0

テーブルのHTMLコード全体を投稿し、正しく識別された投稿をしてください。また、より具体的にあなたが欲しいものになります。 –

+0

OK、私はすべての$数と "ノグ(数字)"を抽出したい – patrick

答えて

0

のいずれかが含まれているテーブル内のすべてのセルを見つけるだろうこれはそれを行うにはセレンの方法があると私は全くBeautifulSoupを使用していなかったことを

number_elements = browser.find_elements_by_xpath("//td[contains(text(), '$')]") 

nog_number_elements = browser.find_elements_by_xpath("//td[contains(text(), 'Nog')]") 

for number_element in number_elements: 
    print(number_element.text) 
for nog_number_element in nog_number_elements: 
    print(nog_number_element.text) 

注:ノグ番号の数とNogため。

+0

ありがとう、これは働いて、私はxpathを使用する方法を学ぶ必要があると思います:) – patrick

0

私はそれがテキストが$が含まれているすべてのtd要素を見つけると、これはあなたのために働くべきだと思います「$」または「ノグ」

cells = browser.find_elements_by_xpath("//td[contains(text(), '$') or contains(text(), 'Nog')]") 

for cell in cells: 
    print cell.text 
関連する問題