错误:“。NoneType”对象没有.find

时间:2019-07-04 10:45:41

标签: python web-scraping

我不熟悉网络窃听,并试图从Google趋势网站获取有关所用关键字平均值的信息。

当前,我收到错误$ AttributeError:'NoneType'对象没有属性'find_all'。我认为该错误是因为'bar-chart-content'作为一个类可能不存在为HTML中的名称。

# -*- coding: utf-8 -*-

import requests
from bs4 import BeautifulSoup

quote_page = 'https://trends.google.com/trends/explore?geo=US&q=pikachu,Cat'

page = requests.get(quote_page)

soup = BeautifulSoup(page.text, 'html.parser')

table = soup.find('div', {'class': 'bar-chart-content'}).find_all('td') #Gives the error: AttributeError: 'NoneType' object has no attribute 'find_all'

请告诉我如何解决此问题,以及有关将来如何为不包括inspect [如果是问题]的网站找到正确的类名的任何建议?

编辑:基于MePsyDuck的答案,该类不存在,因此如何找到正确的名称?

1 个答案:

答案 0 :(得分:1)

请先检查汤是否找到任何<div>,然后再尝试找到td。 如果您指定的类没有<div>,则div对象将为None(我们可以很容易地检查它)。

将代码的最后一行替换为:

div = soup.find('div', {'class': 'bar-chart-content'})
if div is not None:
    table = div..find_all('td') 
    # Process futher