YunCanyi 2021-09-03 10:50 采纳率: 50%
浏览 68
已结题

这里find_all到底怎么错了??找了半天也不知道怎么错了,各位帮帮忙吧


import requests,csv,random,bs4
csv_file= open('C:\\Users\\ke\\Desktop\\电影排名250.csv','w',newline= '')
newline = ''
writer = csv.writer(csv_file)
writer.writerow(['序号','电影名','评分','推荐语','链接'])
for x in range(10):
    url = 'https://movie.douban.com/top250?start=' + str(x*25) + '&filter='
    res = requests.get(url)
    bs = bs4.BeautifulSoup(res.text,'html.parser')
    bs = bs.find('ol',class_ = 'grid_view')
    for titles in bs.find_all('li'):
        num = titles.find('em',class_ = '').text
        title = titles.find('span',class_ = 'title').text
        comment = titles.find('span',class_ = 'rating_num').text
        url_movie = titles.find('a')['herf']
        if titles.find('span',class_ = 'inq') !=None:
            tes = titles.find('span',class_ = 'inq').text
            writer.writerow([num + '.' + title + '——' + comment + '\n' + '推荐语:' + tes +'\n' + url_movie])
        else:
            writer.writerow([num + '.' + title + '——' + comment + '\n' +'\n' + url_movie])
csv_file.close()

一直提示AttributeError: 'NoneType' object has no attribute 'find_all'真没找出来哪里错了

  • 写回答

2条回答 默认 最新

  • CSDN专家-HGJ 2021-09-03 12:32
    关注

    代码中主要有两个问题:
    一是请求没有写请求头headers,没有获取到页面代码,值为None,因此后面用find或findall会报错。
    二是url_movie的节点元素获取需要改写一下。否则也为None
    解决办法:
    1.在第9行requests.get()中添加:headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'}
    2.将16行改成:url_movie = titles.find('div',class_='hd').find_next('a')['href']

    如有帮助,请点击采纳。

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

报告相同问题?

问题事件

  • 系统已结题 9月11日
  • 已采纳回答 9月3日
  • 创建了问题 9月3日

悬赏问题

  • ¥15 蓝桥oj3931,请问我错在哪里
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染