問題如下:
# -*- coding:utf-8 -*-
from urllib.request import urlopen
import bs4
import webbrowser
import requests
html_list = [] #存放要爬的所有網(wǎng)頁
html_list_txt = [] #存放要爬的所有網(wǎng)頁的源代碼
movie_list = [] #存放所有電影
movie_total = {} #存放所有電影資料的字典
html = 'https://movie.douban.com/top250'
html_list.append(html)
#html2 = requests.get('https://movie.douban.com/top250')
#webbrowser.open(html)
#webbrowser.open(html)
html_txt = (urlopen(html)).read()
#html_txt = (requests.get(html)).text
bsObj = bs4.BeautifulSoup(html_txt, 'html.parser')
print('---1---')
html_div = bsObj.find('div',{'class':'paginator'})
print('---2---')
html_a = html_div.findAll('a')
print('---3---')
for html_a_temp in html_a:
# print(type(html_a_temp))
#i = 2
#while i <= 9:
#print(html_a_temp.get_text())
#if html_a_temp.get_text != '后頁>':
html_href = html_a_temp.attrs['href']
html_ + html_href
html_list.append(html_href)
#i += 1
print('---4---')
html_list = list(set(html_list))
print(len(html_list))
#print(html_set)
#print(len(html_set))
#print(set(html_list))
#print(type('后頁'))
#上面的代碼為找到所有的鏈接
for html_list_temp in html_list:
'''把所有要爬的鏈接全部轉(zhuǎn)換成源代碼并存儲'''
html_read = bs4.BeautifulSoup(urlopen(html_list_temp).read(), 'html.parser')
html_list_txt.append(html_read)
for html_page in html_list_txt:
name_div_list = html_page.findAll('div',{'class':'info'})
for name_div_temp in name_div_list:
name_div_inside = name_div_temp.findAll('div')
movie_name = name_div_inside[0].a.span.get_text() #找到電影名字
name_div_star = name_div_temp.find('div',{'class':'star'})
name_div_star_span = name_div_star.findAll('span')
movie_score = name_div_star_span[1].get_text() #找到電影評分
movie_number = name_div_star_span[3].get_text() #找到電影評價人數(shù)
# ------分隔符-----
#name_span_inq = name_div_temp.findAll('p')[1].span.get_text()
#movie_introduction = name_span_inq
#name_span_inq = name_div_temp.find('span',{'class':'inq'})
print('----ttt----')
#movie_introduction = name_span_inq.get_text() #找到電影簡評
movie_total['name'] = movie_name
movie_total['score'] = movie_score
movie_total['number'] = movie_number
#movie_total['introduction'] = movie_introduction
movie_list.append(movie_total)
print(movie_list)
'''
name_div_inside_span_list = name_div_inside[1].div.findAll('span')
for name_div_inside_span_temp in name_div_inside_span_list:
movie_score = name_div_inside[1].div.span[1].get_text() #找到電影評分
movie_number = name_div_inside[1].div.span[3].get_text() #找到評價人數(shù)
'''
#movie_total[name] = movie_name
'''
name_div_list = html_page.findAll('div',{'class':'hd'})
for name_div_temp in name_div_list:
movie_name = name_div_temp.a.span.get_text()
movie_name_list.append(movie_name)
'''
#print(movie_name_list)
運行結(jié)果如下:
這個爬蟲我還在測試中,本身還存在一些其他問題,有待解決。
但是我現(xiàn)在想問的是,為什么我在爬豆瓣TOP250電影的時候,每次抓下來一個電影,存到列表里,最終打印出來的全部都是同一個電影呢?
我怎么樣改動代碼,才能讓這些電影變成一個一個不同的電影呢?
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團,成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。