@robick231

Как получить table через BeatifulSoup?

Как получить <table> и все его <tr>?

<div id="market_commodity_forsale_table" class="market_commodity_orders_table_container">
<table class="market_commodity_orders_table">
<tbody>
<tr>
<th align="right">Цена</th><th align="right">Кол-во</th></tr><tr><td align="right" class="">$0.05</td><td align="right">2991</td></tr><tr><td align="right" class="">$0.06</td><td align="right">2293</td></tr><tr><td align="right" class="">$0.07</td><td align="right">2120</td></tr><tr><td align="right" class="">$0.08</td><td align="right">2489</td></tr>
<tr>
<td align="right" class="">$0.09</td><td align="right">3270</td></tr><tr><td align="right" class="">$0.10 и более</td><td align="right">13522</td></tr></tbody></table></div>

Я не могу получить
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
@PVLTMK
Если вам не принципиально использовать BeautifulSoup то можно посмотреть в сторону lxml там есть поиск по xpath и выглядит это примерно так:
import lxml.html as html

s = """
<div id="market_commodity_forsale_table" class="market_commodity_orders_table_container">
<table class="market_commodity_orders_table">
<tbody>
<tr>
<th align="right">Цена</th><th align="right">Кол-во</th></tr><tr><td align="right" class="">$0.05</td><td align="right">2991</td></tr><tr><td align="right" class="">$0.06</td><td align="right">2293</td></tr><tr><td align="right" class="">$0.07</td><td align="right">2120</td></tr><tr><td align="right" class="">$0.08</td><td align="right">2489</td></tr>
<tr>
<td align="right" class="">$0.09</td><td align="right">3270</td></tr><tr><td align="right" class="">$0.10 и более</td><td align="right">13522</td></tr></tbody></table></div>
"""

page = html.fromstring(s)
table = page.xpath("//table")[0]
print('Table:', table)
for tr in table.xpath(".//tr"):
    for td in tr.xpath(".//td"):
        print(td.text_content())


Вывод получите примерно такой
Table: <Element table at 0x10187e950>
$0.05
2991
$0.06
2293
$0.07
2120
$0.08
2489
$0.09
3270
$0.10 и более
13522
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@MAGistr_MTM
Учусь программировать
Например так?
table = soup.find("table",{"class":"market_commodity_orders_table"})
rows = table.findAll('tr')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы