鱼C论坛

 找回密码
 立即注册
查看: 1523|回复: 2

[已解决]关于使用bs4爬虫豆瓣250遇到的问题

[复制链接]
发表于 2021-1-20 14:40:29 | 显示全部楼层 |阅读模式
10鱼币
各位大神好,目前只爬取了一页,可是遇到了问题:

代码如下:
import requests
from bs4 import BeautifulSoup
url='https://movie.douban.com/top250'
headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'}
res=requests.get(url,headers=headers)
print(res.status_code)
bs_data=BeautifulSoup(res.text,'html.parser')
list_all=[]

items=bs_data.find_all('li')
for item in items:
    num=item.find('em',class_='').text
    name=item.find('span',class_='title').text
    rate=item.find('span',class_='rating_num').text
    rec=item.find('span',class_='inq').text
    url=item.find('a')['href']
    print(num + '.' + name + '——' + rec + '\n' + '推荐语:' + rate +'\n' + url)

使用pycharm反馈如下:

Traceback (most recent call last):
  File "/Users/sunyong/Library/Application Support/JetBrains/PyCharmCE2020.2/scratches/scratch.py", line 12, in <module>
    num=item.find('em',class_="").text
AttributeError: 'NoneType' object has no attribute 'text'

请问各位大神,为什么会提示没有text属性呢?谢谢

最佳答案
2021-1-20 14:40:30
在 items = bs_data.find_all("li") 这一步中,找到的li并不全是电影,事实上在源码中可以看到<div class="global-nav-items">标签下也有一些li,也就是页面顶部的豆瓣|读书|电影|音乐。你可以用find定位得更详细一些

最佳答案

查看完整内容

在 items = bs_data.find_all("li") 这一步中,找到的li并不全是电影,事实上在源码中可以看到标签下也有一些li,也就是页面顶部的豆瓣|读书|电影|音乐。你可以用find定位得更详细一些
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-20 14:40:30 | 显示全部楼层    本楼为最佳答案   
在 items = bs_data.find_all("li") 这一步中,找到的li并不全是电影,事实上在源码中可以看到<div class="global-nav-items">标签下也有一些li,也就是页面顶部的豆瓣|读书|电影|音乐。你可以用find定位得更详细一些
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-1-20 15:55:08 | 显示全部楼层
EthanHsiung 发表于 2021-1-20 14:40
在 items = bs_data.find_all("li") 这一步中,找到的li并不全是电影,事实上在源码中可以看到标签下也有一 ...

谢谢,我重新定位了一下,现在可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 09:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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