我不熟悉网络窃听,并试图从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的答案,该类不存在,因此如何找到正确的名称?
答案 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