鱼C论坛

 找回密码
 立即注册
查看: 2098|回复: 5

[已解决]爬取优美图库的一个NoneType的bug

[复制链接]
发表于 2021-10-16 15:20:23 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 wmy1212 于 2021-10-17 20:31 编辑

代码奉上,报错在20行:
  1. import requests # 发请求到服务器
  2. from bs4 import BeautifulSoup
  3. resp = requests.get('https://www.umei.cc/katongdongman/') #从服务器拿到源码
  4. resp.encoding = 'utf-8'
  5. # 解析html
  6. main_page = BeautifulSoup(resp.text,'html.parser')
  7. # 从页面中找到某些东西
  8. # find() find_all()
  9. alist = main_page.find('div',attrs = {'class':'TypeList'}).find_all('a',attrs = {'class':'TypeBigPics'})
  10. # div是标签,后面是属性,是一一对应的
  11. n = 1
  12. for i in alist:
  13.     # print(i.get('href'))
  14.     #发送请求到子页面,进入子页面
  15.     href = 'https://www.umei.cc/katongdongman/' + i.get('href')
  16.     resp1 = requests.get(href)
  17.     resp1.encoding = 'utf-8'
  18.     child_page = BeautifulSoup(resp1.text,'html.parser')
  19.     print(type(child_page))
  20.     src = child_page.find('div',attrs = {'class':'ImageBody'}).find('img').get('src') # 问题出在这一行!!!!
  21.    
  22.     # 发送请求到服务器,把图片保存在本地
  23.     # requests.get(src).content 向外拿出图片的数据,不是文本信息
  24.    
  25.     f = open('图_%d.jpg' % n,mode = 'wb')# wb表示写入的内容是非文本文件
  26.     f.write(requests.get(src).content)
  27.     print('恭喜你,下载了%d张图片!' % n)
  28.     n += 1
  29.    
  30. f.close()
复制代码


发生了报错:
  1. AttributeError                            Traceback (most recent call last)
  2. <ipython-input-6-16053cc4abc5> in <module>()
  3.       7     child_page = BeautifulSoup(resp1.text,'html.parser')
  4.       8     print(type(child_page))
  5. ----> 9     src = child_page.find('div',attrs = {'class':'ImageBody'}).find('img').get('src')
  6.      10     # 发送请求到服务器,把图片保存在本地
  7.      11     # requests.get(src).content 向外拿出图片的数据,不是文本信息

  8. AttributeError: 'NoneType' object has no attribute 'find'
复制代码


两个问题:
1.为什么说我的chila_page是NoneType?明明我打印了是<class 'bs4.BeautifulSoup'>
2.这个程序如果de完了bug,我用jupyter notebook跑出来之后,文件是保存在jupyter所在的文件夹里吗?
最佳答案
2021-10-16 15:20:24
find返回了None,也就是bs没找到元素

最佳答案

查看完整内容

find返回了None,也就是bs没找到元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-16 15:20:24 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
find返回了None,也就是bs没找到元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-16 16:22:03 | 显示全部楼层
好的吧,哪把悬赏给我吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-17 20:09:15 | 显示全部楼层
dd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-17 20:10:35 | 显示全部楼层
benyazi 发表于 2021-10-16 16:22
好的吧,哪把悬赏给我吧

我重新编辑啦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-17 20:41:16 | 显示全部楼层
hrpzcf 发表于 2021-10-16 15:20
find返回了None,也就是bs没找到元素

啊,明白了!刚刚改了一下好了!就是我前面的网址拼接错了~重复了一部分qwq,谢谢~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-13 02:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表