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层级,能不能找到这个元素

    评论

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题