使用BeautifulSoup获取<tr>标记的样式

2024-05-20 01:32:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我在抓取一个页面,从该页面上的一个表中,我得到了所有的<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的事情,但我迄今所做的一切并没有达到我想要的。


Tags: comhttp元素getwiki页面allfind
1条回答
网友
1楼 · 发布于 2024-05-20 01:32:08

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

使用您的实际url:

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

相关问题 更多 >