【问题标题】:Extracting part of <pre> tag using Beautifulsoup使用 Beautifulsoup 提取 <pre> 标记的一部分
【发布时间】:2016-10-24 22:01:47
【问题描述】:

我试图只提取一个有点简单的网页上标签之间的一部分内容。

这是页面http://bridge.no/var/ruter/html/0237/2016-10-18.htm 我只想要标签之间的第一个“表”。 我所做的只是这样:

import pandas as pd
from bs4 import BeautifulSoup
import urllib.request

adress = 'http://bridge.no/var/ruter/html/0237/2016-10-18.htm'
response = urllib.request.urlopen(adress)
html = response.read()

soup = BeautifulSoup(html)
pre = soup.find_all('pre')

而且我想这是其中最简单的部分,在查看了使用 BeautifulSoup 的示例之后,我仍然不知道该怎么做。在查看源代码时,我看到了两个可能的东西来拆分它,一个 name='scoretables' 或 一长串的破折号。 "------------------------------------------------ ---------------”

在那之后,我想把那个“表”放到一个 pandas DataFrame 中,但我想我可以处理这部分。有没有人得到一些关于如何使用 BeautifulSoup 来做我想做的事情的“专业”提示?

【问题讨论】:

    标签: python-3.x beautifulsoup


    【解决方案1】:

    要从第一个表中获取文本,您可以从 .contents 中提取第一个元素

    soup = BeautifulSoup(html,"lxml")
    table = soup.find("pre").contents[0]
    

    或者拉取第一个文字:

    table = soup.find("pre").find(text=True)
    print(table)
    

    两者都会给你:

    13 bord, 25 par, 1 blindpar. Antall spill: 27. Frirunde (*) gir innspilt prosent.
    
    Plass  Par   Poeng       %  Navn                                          MNR      Klubb                        
    
        1    1    68,0    61,4  Simon Rasmussen - Rolf Normann Hansen     13838  8056  Kolbotn BK - Ski BK          
        2    2    56,0    59,4  Åge Seiersten - Truls Bjerkås             27817 24421  Brandbu BK - Posten BK       
        3   26    52,9 *  58,9  Knut Karlsen - Bjørn Roar Haugen          13153 14791  Kolbotn BK                   
        4   16    48,4 *  58,1  Kåre Bogø - Svein Arild Naas Olsen        29525 14358  Nittedal BK - Kolbotn BK     
        5   23    44,0    57,4  Per Arild Kvist - Raymond Frivåg          18774 11751  Ski BK - Kolbotn BK          
    
        6   14    34,0    55,7  Øyvind Bronken - Arne Almendingen         18763  4387  Kolbotn BK - Ski BK          
        7    9    32,0    55,4  Karl Johan Bjørn - Trond M. Thorgersen     7964 33905  Kolbotn BK                   
        8   10    26,0    54,4  Arild Basma - Odd Arne Bertheussen        25130 11589  Kirkenes BK - Kolbotn BK     
        9    5    23,0    53,9  Gerd Irene Knutsen - Einar Knutsen        30543 30542  Kolbotn BK                   
       10    3    17,0    52,9  Bjørn Tore Hallén - Sven-Åge Lund         27205 27206  Posten BK                    
    
             6    17,0    52,9  Hege Johansen - Elisabeth Johansen        32129 32031  Kolbotn BK                   
       12   13    14,0    52,4  Helge Lian - Bård Lian                    38230 31391  Kolbotn BK                   
       13    4    11,0    51,9  Sven Pran - Bjørn Arne Ruud                9704 23063  Kolbotn BK                   
       14   21     2,3 *  50,4  Olav Hjerkinn - Marit Hjerkinn              675 25417  Ski BK - Kolbotn BK          
       15   17    -8,0    48,7  Geir Liabø - Bjarne Erlandsen             32924 11158  Kolbotn BK - Ski BK          
    
       16   19   -10,0    48,3  Tove Wikerholmen - Per Gunnar E. Frislid  30926 40386  Kolbotn BK                   
       17   20   -13,0    47,8  Arnold Digre - Tim Nørgaard                5683 29591  Kolbotn BK - Bridgekameratene
       18   22   -17,0    47,1  Trond Østlie - Arvid Ek                   33024 32178  Kolbotn BK                   
       19   15   -27,0    45,5  Andreas Jansen - Dag Amund Lie            38503  3636  Kolbotn BK - Ski BK          
       20   11   -39,4 *  43,4  John Sandberg - Berit Hornhammar          18745 25418  Kolbotn BK                   
    
       21   12   -40,5 *  43,2  Toralf Brandvoll - Else Heldre            35159 30744  Kolbotn BK                   
       22    7   -42,8 *  42,8  Mette Hugin - Liv Kongelf                 41332 37002  Kolbotn BK                   
       23    8   -69,8 *  38,3  Laila K. Siltvedt - Wencke Thorstensen    39025 39026  Kolbotn BK                   
       24   24   -93,4 *  34,3  Harald Molteberg - Terje J. Eriksen       18843 42314  Ski BK - Kolbotn BK          
       25   18  -118,1 *  30,1  Leif Åge Bergseng - Ulf Kopperud          18740 41968  Kolbotn BK - Hjerter Konge  
    

    将其放入 df 将需要正则表达式,因为没有一致的分隔符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-05
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      • 2023-04-05
      • 2015-11-28
      相关资源
      最近更新 更多