==== 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('------------------------------------------------------')