Skip to main content
 首页 » 编程设计

python之使用 BeautifulSoup 获取样式属性

2025年05月04日15lexus

我正在抓取一个页面并从该页面上的一个表中获取所有 <tr>像这样的元素:

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> 

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

for item in tr[0]: 
    print item 

它显然只是打印了 <td> ... </td>东西。我想我可以做类似 print tr[0].something 的事情, 比如 tr[0].tag ,但到目前为止我所做的一切都没有达到我想要的效果。

请您参考如下方法:

只需使用 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