首页 > 解决方案 > 如何通过 try catch 处理这个异常?AttributeError:“NoneType”对象没有属性“get_text”

问题描述

在此处输入图像描述 我想获取图像中显示的趋势,但我无法获取没有推文计数的推文。(参考图片)下面是我为那些没有推文计数的推文得到的错误. 请让我知道如何处理此异常并打印所有推文。

    from bs4 import BeautifulSoup
    import requests
    URL = "https://trends24.in/india/"
    html_text=requests.get(URL)
    soup= BeautifulSoup(html_text.content,'html.parser')
    results = soup.find(id='trend-list')
    job_elems = results.find_all('li')
    for job_elem in job_elems:
            print(job_elem.find('a').get_text(), job_elem.find('span').get_text())

标签: exceptionbeautifulsouptry-catchtweets

解决方案


您可以选择一个共享父项,然后在尝试中使用推文计数包装尝试抓取,除了

from bs4 import BeautifulSoup
import requests
URL = "https://trends24.in/india/"
html_text=requests.get(URL)
soup= BeautifulSoup(html_text.content,'lxml')

for i in soup.select('#trend-list li'):
    print(i.a.text)
    try:
        print(i.select_one('.tweet-count').text)
    except:
        print("no tweets")

字典列表:

from bs4 import BeautifulSoup
import requests
URL = "https://trends24.in/india/"
html_text=requests.get(URL)
soup= BeautifulSoup(html_text.content,'lxml')

results = []

for i in soup.select('#trend-list li'):
    d = dict()
    d[i.a.text] = '' 
    try:
        val = i.select_one('.tweet-count').text
    except:
        val = "no tweets"
    finally:
        d[i.a.text] = val
        results.append(d)

推荐阅读