首页 > 解决方案 > 如何从网络抓取中解析空数据框?无类型错误

问题描述

解析数据框中所有抓取结果的代码是:

class GameData:

    def __init__(self):
        self.date = []
        self.time = []
        self.game = []
        self.score = []
        self.home_odds = []
        self.draw_odds = []
        self.away_odds = []
        self.country = []
        self.league = []
    .....
    
    game_data = GameData()
    
    ....


    if __name__ == '__main__':
    
        results = None
    
        for url in urls:
            game_data = parse_data(url)
            result = pd.DataFrame(game_data.__dict__)
            if results is None:
                results = result
            else:
                results = results.append(result, ignore_index=True)

有时页面没有任何数据,因此返回数据框NoneType,我得到错误:

result = pd.DataFrame(game_data.__dict__)
AttributeError: 'NoneType' object has no attribute '__dict__'

如何仅使用定义的标头解析空数据框:

标签: pythonloopsweb-scrapingselenium-chromedriver

解决方案


您的代码甚至在 Pandas 有机会解析数据之前就中断了:game_datais None,因此它不能具有属性 ( __dict__)。因为不附加任何结果没有效果,所以您可以跳过一个空数据。

        for url in urls:
            game_data = parse_data(url)
            if game_data is None:
                continue
            ...

推荐阅读