不分南北东西 发表于 2021-1-20 14:40:29

关于使用bs4爬虫豆瓣250遇到的问题

各位大神好,目前只爬取了一页,可是遇到了问题:

代码如下:
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属性呢?谢谢

EthanHsiung 发表于 2021-1-20 14:40:30

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

不分南北东西 发表于 2021-1-20 15:55:08

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

谢谢,我重新定位了一下,现在可以了{:5_95:}
页: [1]
查看完整版本: 关于使用bs4爬虫豆瓣250遇到的问题