马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 文质彬彬胡汉三 于 2017-4-22 16:41 编辑
各位大佬好,小可在練習爬蟲的時候,爬取豆瓣電影TOP250,但是代碼爬取到第5頁就會出錯,天資愚笨,思來想去不明所以,懇請各位大佬指教,代碼如下:import requests
from bs4 import BeautifulSoup
def html_info(url):
'''獲取網頁信息'''
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return ''
def print_info(all_info):
'''打印信息'''
count = 0 #計數器
for movie in all_info:
flist = 'Top{}\n電影名:{}\n電影評分:{}\n一句話影評:{}\n信息查閲:{}\n'
count += 1
print(flist.format(count,movie[0],movie[1],movie[2],movie[3]))
def main():
start_url = 'https://movie.douban.com/top250?start='
depth = 11 #一共需要爬取的頁數
all_info = [] #存儲電影信息
for i in range(depth):
page = str(i*25)
url = start_url+page+'&filter=' #每一頁的URL
soup = BeautifulSoup(html_info(url),'html.parser') #解析網頁
for each in soup.find_all(attrs={'class':'item'}):
m_name = each.find('span').text #電影名
m_summary = each.find('span',attrs={'class':'inq'}).text #一句話概括
m_info = each.a.get('href') #電影地址
m_score = each.find('span',attrs='rating_num').text #評分
all_info.append([m_name,m_score,m_summary,m_info])
print_info(all_info)
if __name__ == '__main__':
main()
以下為出錯(爬取到第100部電影之後,紅色標註為出錯):
Top100
電影名:爱在日落黄昏时
電影評分:8.7
一句話影評:九年后的重逢是世俗和责任的交叠,没了悸动和青涩,沧桑而温暖。
信息查閲:https://movie.douban.com/subject/1291990/
Traceback (most recent call last):
File "E:\python\爬蟲\top250.py", line 39, in <module>
main()
File "E:\python\爬蟲\top250.py", line 32, in main
m_summary = each.find('span',attrs={'class':'inq'}).text #一句話概括
AttributeError: 'NoneType' object has no attribute 'text'
另,懇請各位大佬對小可的代碼提出寶貴的意見和建議,各個方面都可以,小可不勝感激! |