美丽的汤 - 属性值的提取不起作用

时间:2017-11-29 19:40:19

标签: python beautifulsoup tags

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

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

这是我的代码(我指的是上面有td标记的网址)

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'])

我总是收到错误消息...... 有些帮忙吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

由于class标记对于您想要的'data-o'项是唯一的,因此您可能希望使用语法{'class': 'class_name'}来仅 那些<td> class='bc bs oi'首先包含'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']

http://www.google.com,
http://www.yahoo.com,
http://www.amazon.com

希望这有帮助。