我正在尝试获取特定td内的第二个标签,但是我不能仅获取第二个标签的文本,因为我正在从所有a中获取数据。 稍后,我将为获取10 td的数据做一个准备。正如您在图像中看到的那样,我希望每10 td内包含第二个a的数据:
我的代码:
from requests import get
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0'}
url = 'https://www.oddsportal.com/soccer/spain/laliga'
response = get(url, headers=headers)
html_soup = BeautifulSoup(response.text, 'html.parser')
type(html_soup)
match_containers = html_soup.find_all("td",{ "class" : "name table-participant"})
print(len(match_containers))
first_match = match_containers[0]
first_title = first_match.text
print (first_title)
答案 0 :(得分:0)
您需要选择第二个a
标签
import requests
from bs4 import BeautifulSoup as bs
url = 'https://www.oddsportal.com/soccer/spain/laliga'
r = requests.get(url, headers = {'User-Agent' : 'Mozilla/5.0'})
soup = bs(r.content, 'lxml')
print([item.text for item in soup.select('#tournamentTable tr[xeid] [href*=soccer]')])
尽管您可以删除表ID并使用:
print([item.text for item in soup.select('tr[xeid] [href*=soccer]')])
对于表的行,将有用的匹配数据作为列表,我将使用:
rows = soup.select('#tournamentTable tr[xeid]')