for循环没有从beautifulsoup scraping中获取所有值

时间:2018-05-24 05:43:03

标签: python web-scraping beautifulsoup

我只是在玩游戏并尝试使用python与请求和beautifulsoup学习网页抓取。我无法像我试图遵循的一些说明那样循环。

我想要完成的只是输出日期,以及此页面中的团队列表:http://www.vegasinsider.com/mlb/odds/las-vegas/

这是我的代码:

tf.keras

尝试执行时,它将首先在" from datetime import datetime from flask import render_template from testApp import app from bs4 import BeautifulSoup import requests source = requests.get('http://www.vegasinsider.com/mlb/odds/las-vegas/').text soup = BeautifulSoup(source, "lxml") tbl = soup.find('table', class_='frodds-data-tbl') for matchups in tbl.find_all('td', class_= 'viCellBg1'): gameDate = matchups.span.text print(gameDate) team = matchups.b.a.text print(team) print() "的设置上失败。变量gameDate

我的印象是,一旦我拥有了我想要定位的对象,我就可以循环并级联标记以找到我要查找的文本,但这并不起作用。

有人可以查看我上面的代码并告诉我我做错了什么吗?我非常感谢对此的任何帮助和见解,因为我很新。

谢谢!

1 个答案:

答案 0 :(得分:1)

你可以检查比赛中是否存在范围,试试这个:

source = requests.get('http://www.vegasinsider.com/mlb/odds/las-vegas/').text

soup = BeautifulSoup(source, "html.parser")
tbl = soup.find('table', class_='frodds-data-tbl')

for matchups in tbl.find_all('td', class_= 'viCellBg1'):
    if matchups.span is not None:
        gameDate = matchups.span.text
        print(gameDate)

    for b_ in matchups.find_all('b'):
        print(b_.a.text)