exception - 如何通过 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())
解决方案
您可以选择一个共享父项,然后在尝试中使用推文计数包装尝试抓取,除了
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)
推荐阅读
- actions-on-google - 谷歌模拟器上的谷歌智能家居操作不起作用
- python - 替换csv文件python中的整列
- selectize.js - selectize.js 避免自动排序选项
- embedded-linux - Yocto 最小 eSDK - world-pkgdata
- microsoft-graph-api - 即使 $top=1,Microsoft Graph 也会显示 @nextlink?
- java - 这个列表会被垃圾收集吗?
- c# - 如何检查列表是否包含项目
- android - 如何以编程方式访问预加载的字体
- c# - ChromiumFX 即时修改响应标头
- python - 使用 matplotlib 图例中的格式进行文本对齐