weixin_46635193 2022-01-12 13:49 采纳率: 80%
浏览 938
已结题

代码运行错误:AttributeError: 'NoneType' object has no attribute 'find'

问题遇到的现象和发生背景 :代码运行报错:AttributeError: 'NoneType' object has no attribute 'find'
问题相关代码,请勿粘贴截图 :
import requests
from bs4 import BeautifulSoup
import pprint
import json
def download_all_htmls():
    htmls=[]
    for idx in range(40):
        url=f"http://www.crazyant.net/page/{idx+1}"
        print("craw html:",url)
        r=requests.get(url)
        if r.status_code!=200:
            raise Exception("error")
        htmls.append(r.text)
    return htmls
htmls=download_all_htmls()
def parse_single_html(html):
    soup =BeautifulSoup(html,'html.parser')
    articles=soup.find_all("article")
    datas=[]
    for article in articles:
        title_node=(
            article
            .find("h2",class_="entry-title")
            .find("a")
        )
        title=title_node.get_text()
        link=title_node["href"]
        tag_nodes=(
            article
            .find("footer",class_="enry-footer")
            .find("span",class_="tags-links")
            .find_all("a")
        )
        tags=[tag_node.get_text() for tag_node in tag_nodes]
        datas.append(
            {"title":title,"link":link,"tags":tags}
        )
    return datas
pprint.pprint(parse_single_html(htmls[0]))
all_datas=[]
for html in htmls:
    all_datas.extend(parse_single_html(html))
len(all_datas)
with open("all_article_links.json""w") as fout:
        for data in all_datas:
            fout.write(json.dumps(data, ensure_ascii=False) + "\n")

运行结果及报错内容 :
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\test\yuyue.py", line 39, in <module>
    pprint.pprint(parse_single_html(htmls[0]))
  File "C:\Users\Administrator\Desktop\test\yuyue.py", line 29, in parse_single_html
    article
AttributeError: 'NoneType' object has no attribute 'find'

进程已结束,退出代码1


我想要达到的结果:代码运行正常
  • 写回答

2条回答 默认 最新

  • 陈年椰子 2022-01-12 15:25
    关注

    我发现你采集的数据 里 没有 class_="enry-footer" 和 class_="tags-links" 的内容
    注释掉了,就正常运行了
    你检查一下这两个关键字 ,改成正确的内容

    img

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月20日
  • 已采纳回答 1月12日
  • 创建了问题 1月12日

悬赏问题

  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题