wmy1212 发表于 2021-10-16 15:20:23

爬取优美图库的一个NoneType的bug

本帖最后由 wmy1212 于 2021-10-17 20:31 编辑

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

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

AttributeError: 'NoneType' object has no attribute 'find'

两个问题:
1.为什么说我的chila_page是NoneType?明明我打印了是<class 'bs4.BeautifulSoup'>
2.这个程序如果de完了bug,我用jupyter notebook跑出来之后,文件是保存在jupyter所在的文件夹里吗?

hrpzcf 发表于 2021-10-16 15:20:24

find返回了None,也就是bs没找到元素

benyazi 发表于 2021-10-16 16:22:03

好的吧,哪把悬赏给我吧

wmy1212 发表于 2021-10-17 20:09:15

dd

wmy1212 发表于 2021-10-17 20:10:35

benyazi 发表于 2021-10-16 16:22
好的吧,哪把悬赏给我吧

我重新编辑啦~

wmy1212 发表于 2021-10-17 20:41:16

hrpzcf 发表于 2021-10-16 15:20
find返回了None,也就是bs没找到元素

啊,明白了!刚刚改了一下好了!就是我前面的网址拼接错了~重复了一部分qwq,谢谢~~
页: [1]
查看完整版本: 爬取优美图库的一个NoneType的bug