【问题标题】:Deleting all content between brackets from a string using python使用python从字符串中删除括号之间的所有内容
【发布时间】:2014-09-09 22:36:27
【问题描述】:

我正在使用漂亮的汤从 html 页面中抓取数据,当我抓取数据时,我只剩下这个:

<tr>
<td class="main rank">1</td>
<td class="main company"><a href="/colleges/williams-college/">
<img alt="" src="http://i.forbesimg.com/media/lists/colleges/williams-college_50x50.jpg">
<h3>Williams College</h3></img></a></td>
<td class="main">Massachusetts</td>
<td class="main">$61,850</td>
<td class="main">2,124</td>
</tr>

这是我用来获取这个的 beautifulsoup 命令:

html = open('collegelist.html')
test = BeautifulSoup(html)
soup = test.find_all('tr')

我现在想操作这个文本以便它输出

1
Williams College
Massachusetts
$62,850
2,214

我很难为整个文档这样做,我有大约 700 个这样的条目。任何建议将不胜感激。

【问题讨论】:

    标签: python beautifulsoup urllib


    【解决方案1】:

    只需为循环中的每个tr 获取.text(或使用get_text()):

    soup = BeautifulSoup(open('collegelist.html'))
    for tr in soup.find_all('tr'):
        print tr.text  # or tr.get_text()
    

    对于您提供的 HTML,它会打印:

    1
    
    
    Williams College
    Massachusetts
    $61,850
    2,124
    

    【讨论】:

    • 完美,不敢相信我没有看到那个选项。也感谢您的解释。
    【解决方案2】:

    使用get_text()

     soup = BeautifulSoup(html)
     "".join([x.get_text() for x in soup.find_all('tr')])
    

    【讨论】:

      猜你喜欢
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-24
      • 1970-01-01
      • 2020-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多