如何从数组中获取数字

问题描述 投票:0回答:2
[<div class="ticket_type">‐ Help With Steam Workshop<a 
 href="javascript: 
 jsTicketsLast7Days.getOptions().appendValueToParam( 'requestid', 
 '29' ); jsTicketsLast7Days.getOptions().showSelectedRange( true 
  ); $J('#TicketsLast7Days').get(0).scrollIntoView();"> + </a> 
 </div>,
 <div class="ticket_last_24 report_table_right">
                                <span>15</span>
                                <span>(</span><span 
  class="change_increase">+36%</span><span>)</span>                          
 </div>,
 <div class="ticket_last_week report_table_right">
                                <span>271</span>
                                <span>(</span><span 
   class="change_increase">+632%</span><span>)</span>                            
 </div>,
 <div class="ticket_waiting_not_elevated 
 report_table_right">0</div>,
 <div class="ticket_waiting_elevated 
 report_table_right">37</div>,
 []]

我怎么只能获得“ticket_waiting_not_elevated report_table_right”和ticket_waiting_elevated report_table_right数字0和37?

python-3.x beautifulsoup
2个回答
0
投票

可能这可能会有所帮助,

text ="""[<div class="ticket_type">‐ Help With Steam Workshop<a href="javascript: jsTicketsLast7Days.getOptions().appendValueToParam( 'requestid', '29' ); jsTicketsLast7Days.getOptions().showSelectedRange( true ); $J('#TicketsLast7Days').get(0).scrollIntoView();"> + </a></div>,
         <div class="ticket_last_24 report_table_right"><span>15</span><span>(</span><span class="change_increase">+36%</span><span>)</span> </div>,
         <div class="ticket_last_week report_table_right"> <span>271</span><span>(</span><span class="change_increase">+632%</span><span>)</span></div>,
         <div class="ticket_waiting_not_elevated report_table_right">0</div>,
         <div class="ticket_waiting_elevated report_table_right">37</div>,
        []]"""

    soup = BeautifulSoup(text, 'html.parser')
    for i in soup.find_all('div', attrs={'class': ['ticket_waiting_not_elevated report_table_right', 'ticket_waiting_elevated report_table_right']}):
        print(i.get('class')[0], ':', i.text)

# Output is: ticket_waiting_not_elevated : 0
#            ticket_waiting_elevated : 37


0
投票

您可以使用select()获取数据:

data = """[<div class="ticket_type">‐ Help With Steam Workshop<a
 href="javascript:
 jsTicketsLast7Days.getOptions().appendValueToParam( 'requestid',
 '29' ); jsTicketsLast7Days.getOptions().showSelectedRange( true
  ); $J('#TicketsLast7Days').get(0).scrollIntoView();"> + </a>
 </div>,
 <div class="ticket_last_24 report_table_right">
                                <span>15</span>
                                <span>(</span><span
  class="change_increase">+36%</span><span>)</span>
 </div>,
 <div class="ticket_last_week report_table_right">
                                <span>271</span>
                                <span>(</span><span
   class="change_increase">+632%</span><span>)</span>
 </div>,
 <div class="ticket_waiting_not_elevated
 report_table_right">0</div>,
 <div class="ticket_waiting_elevated
 report_table_right">37</div>,
 []]"""

from bs4 import BeautifulSoup

soup = BeautifulSoup(data, 'lxml')

nums = soup.select('''div.ticket_waiting_not_elevated.report_table_right,
                      div.ticket_waiting_elevated.report_table_right''')

print([num.text for num in nums])

打印:

['0', '37']

qazxsw poi用qazxsw poi class或qazxsw poi class选择所有div。

© www.soinside.com 2019 - 2024. All rights reserved.