python
  • beautifulsoup
  • 2016-08-24 56 views 0 likes 
    0

    所以我一直在尝试使用BeautifulSoup检索一些数据,但我碰到了一堵砖墙。使用美丽的汤检索数据

    <tr data-name="A Color Similar to Slate"> 
           <th class="unique"><a href="/item/5052/6/223d382afee2ac6857d3298b800652e0" class="item-link"><span style='color: #7D6D00'>A Color Similar to Slate</span></a></th> 
           <td class=unique>0/10</td> 
           <td class="unique" data-conversion="14 ref">35,000</td> 
           <td class="unique" data-conversion="13.02 ref">32,550</td> 
           <td class="unique" data-conversion="13.51 ref">33,775</td> 
           <td class="unique" style="text-align: center;"><a class="item-link-backpack" href="http://backpack.tf/stats/Unique/A+Color+Similar+to+Slate/tradable/craftable"><img src="/img/bptf-icon.png" alt="View on Backpack.tf"/></a></td> 
          </tr> 
    

    我想什么我的脚本做的是采取一种输入(在这种情况下,“接近石板的颜色类似”字符串),并使其返回低于(0/10,14 REF等数据),以便我可以将它与一组不同的数据进行比较。我怎样才能使它工作?

    回答

    1
    similar_color = soup.find('tr', {'data-name': 'A Color Similar to Slate'}) 
    for value in similar_color.find_all('td'): 
        print(value.text) 
    

    应导致:

    0/10 
    35,000 
    

    等等,等等。但是,似乎您希望有时获取文本值,并且其他时间值为data-conversion。要做到这一点,你只需替换print(value.text)符合:

    print(value.attrs.get('data-conversion')) 
    
    +0

    谢谢!它像一个魅力! –

    +0

    没问题!如果它有点帮助,请考虑检查绿色答案按钮:-) – n1c9

    0

    如果您将其用于其他HTML样式文件:

    from bs4 import BeautifulSoup 
    html= """<tr data-name="A Color Similar to Slate"> 
           <th class="unique"><a href="/item/5052/6/223d382afee2ac6857d3298b800652e0" class="item-link"><span style='color: #7D6D00'>A Color Similar to Slate</span></a></th> 
           <td class=unique>0/10</td> 
           <td class="unique" data-conversion="14 ref">35,000</td> 
           <td class="unique" data-conversion="13.02 ref">32,550</td> 
           <td class="unique" data-conversion="13.51 ref">33,775</td> 
           <td class="unique" style="text-align: center;"><a class="item-link-backpack" href="http://backpack.tf/stats/Unique/A+Color+Similar+to+Slate/tradable/craftable"><img src="/img/bptf-icon.png" alt="View on Backpack.tf"/></a></td> 
          </tr>""" 
    
    soup = BeautifulSoup(html) 
    texts = [i.get_text() for i in soup.find_all() if i.get_text()] 
    
    print(texts[texts.index('A Color Similar to Slate'):]) 
    

    这将检查所有的标签不仅仅是td。输出是['A Color Similar to Slate', 'A Color Similar to Slate', 'A Color Similar to Slate', '0/10', '35,000', '32,550', '33,775']

    相关问题