qq_40406414 2017-11-12 03:45 采纳率: 0%
浏览 2985

python爬取豆瓣电影 一直报错 求解决

==== RESTART: C:\Users\123\AppData\Local\Programs\Python\Python36\类的学习.py ====
Traceback (most recent call last):
File "C:\Users\123\AppData\Local\Programs\Python\Python36\类的学习.py", line 29, in
movies_list=get_review(getHtmlText(url))
File "C:\Users\123\AppData\Local\Programs\Python\Python36\类的学习.py", line 20, in get_review
dict['name']=tag_li.find('span','titlt')[0].string
TypeError: 'NoneType' object is not subscriptable

——代码如下—————————————————————————————
import requests
from bs4 import BeautifulSoup
import bs4
def getHtmlText(url):
try:
r = requests.get(url, timeout = 30);
r.raise_for_status();
r.encoding = r.apparent_encoding;
return r.text;

except:
    return ""

def get_review(html):
movies_list=[]
soup=BeautifulSoup(html,"html.parser")
soup=soup.find('ol','grid_view')
for tag_li in soup.find_all('li'):
dict={}
dict['rank']=tag_li.find('em').string
dict['name']=tag_li.find('span','titlt')[0].string
dict['score']=tag_li.find('span','rating_num').string
if(tag_li.find('span','inq')):
dict['desc']=tag_li.find('span','inq').string
movies_list.append(dict)
return movies_list
if name=='__main__':
for i in range(10):
url='http://movie.douban.com/top250?start=%s&filter=&type=' %(i*25)
movies_list=get_review(getHtmlText(url))

    for movie_dict in movies_list:
        print('电影排名:'+movie_dict['rank'])
        print('电影名称:'+movie_dict.get('name'))
        print('电影评分:'+movie_dict.get('score'))
        print('电影评词:'+movie_dict.get('desc','无评词'))
        print('------------------------------------------------------')
  • 写回答

3条回答 默认 最新

  • threenewbee 2017-11-12 03:52
    关注

    get_reviewdict['name']=tag_li.find('span','titlt')[0].string
    仔细看下,它对应的html层级,能不能找到这个元素

    评论

报告相同问题?

悬赏问题

  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播