t need special character 漂亮的汤 - 提取属性值不需要特殊字符

2024-06-16 14:29:31 发布

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

我试图在以下代码行中获取属性“data-o”的值:

<td class="bc bs oi" data-odig="2.55" data-o="17/11" data-hcap="">17/11</td>

这是我的代码(我指的是上面有td标签的URL)

import urllib.request
from bs4 import BeautifulSoup

x = urllib.request.urlopen('https://www.oddschecker.com/football/champions-
league/bayern-munich-v-paris-st-germain/winner')

soup = BeautifulSoup(x.read())

alltd = soup.find_all('td')

for n in alltd:
    print(n['data-o'])

我总是收到一条错误信息。。。 请帮忙?你知道吗

非常感谢!你知道吗


Tags: 代码importdatabs属性requesturllibclass
1条回答
网友
1楼 · 发布于 2024-06-16 14:29:31

由于class标记对于所需的'data-o'项是唯一的,因此您可能希望使用语法{'class': 'class_name'}仅获取那些首先包含class='bc bs oi'<td>标记,然后为每个这些项打印'data-o'项。你知道吗

import urllib.request
from bs4 import BeautifulSoup

x = urllib.request.urlopen('https://www.oddschecker.com/football/champions-
league/bayern-munich-v-paris-st-germain/winner')

soup = BeautifulSoup(x.read(), 'html.parser')

alltd = soup.find_all('td', {'class': 'bc bs oi'})

for item in alltd:
    print item['data-o']

输出:

6/4
17/11
13/8
23/10

或者如果你只是想要list

print [str(item['data-o']) for item in alltd]
['6/4', '17/11', '13/8', '23/10']

希望这有帮助。你知道吗

相关问题 更多 >