【问题标题】:Getting style of <tr> tag using BeautifulSoup使用 BeautifulSoup 获取 <tr> 标签的样式
【发布时间】:2016-10-17 01:38:33
【问题描述】:

我正在抓取一个页面,并从该页面上的表格中获取所有 &lt;tr&gt; 元素,如下所示:

r = requests.get("http://lol.esportswikis.com/wiki/G2_Esports/Match_History")
s = BeautifulSoup(r.content, "lxml")
tr = s.find_all("table", class_="wikitable sortable")[0].find_all("tr")[3:]

print tr[0]

哪个输出:

<tr style="background-color:#C6EFCE"><td>...</td> ... <td>...</td></tr>

现在我正在尝试获取&lt;tr&gt; 标签的样式,但我不知道如何。例如,如果我这样做:

for item in tr[0]:
    print item

它显然只是打印&lt;td&gt; ... &lt;/td&gt; 的东西。我想我可能可以做类似print tr[0].somethingtr[0].tag 之类的事情,但到目前为止我所做的一切都没有达到我想要的效果。

【问题讨论】:

    标签: python beautifulsoup python-requests


    【解决方案1】:

    只需使用tag["attribute"]访问属性:

    In [28]: soup = BeautifulSoup('<tr style="pretty"></tr>', 'html.parser')
    
    In [29]: print soup.find("tr")["style"]
    pretty
    

    如果您只希望带有样式属性的 tr 标签将它们全部获取:

    trs = s.find("table", class_="example-table").find_all("tr", style=True)
    
    for tr in trs:
        print(tr["style"])
    

    或者使用css选择器:

    trs = s.select("table.example-table tr[style]")
    
    for tr in trs:
        print(tr["style"])
    

    使用您的实际网址:

    In [41]: r = requests.get("http://lol.esportswikis.com/wiki/G2_Esports/Match_History")
    
    In [42]: s = BeautifulSoup(r.content, "lxml")
    
    In [43]: trs = s.select("table.wikitable.sortable tr[style]")
    
    In [44]: 
    
    In [44]: for tr in trs:
       ....:         print(tr["style"])
       ....:     
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#FFC7CE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#FFC7CE
    background-color:#FFC7CE
    background-color:#FFC7CE
    background-color:#C6EFCE
    background-color:#FFC7CE
    background-color:#C6EFCE
    background-color:#FFC7CE
    background-color:#FFC7CE
    background-color:#FFC7CE
    background-color:#FFC7CE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#FFC7CE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#FFC7CE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#FFC7CE
    background-color:#C6EFCE
    background-color:#FFC7CE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#FFC7CE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#C6EFCE
    background-color:#FFC7CE
    background-color:#FFC7CE
    background-color:#C6EFCE
    background-color:#FFC7CE
    background-color:#FFC7CE
    background-color:#C6EFCE
    

    【讨论】:

    • 不用担心,我使用 css select 添加了输出,find_all 将完全一样
    猜你喜欢
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 2016-04-15
    • 1970-01-01
    • 2018-01-07
    • 2021-07-22
    • 1970-01-01
    相关资源
    最近更新 更多