# -*- coding: utf-8 -*-
import pandas
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
from bs4 import BeautifulSoup
import requests
import time
urls=['https://movie.douban.com/top250?start={}&filter='.format(str(i)) for i in range(0,250,25)]
#url='https://movie.douban.com/mine?status=wish'
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36',
'Cookie':'gr_user_id=1ba0f40c-adb5-4011-9f66-ef641710c42e; viewed="1419678_1786120"; RT=s=1466650874130&r=https%3A%2F%2Fmovie.douban.com%2Ftop250%3Fstart%3D75%26filter%3D; ll="108091"; __utmt_t1=1; __utma=30149280.1565775292.1453707266.1466481018.1466650178.19; __utmb=30149280.15.8.1466650881759; __utmc=30149280; __utmz=30149280.1466650178.19.18.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; bid="0K5aWKIHxEU"'
}
title=[]
image=[]
actor=[]
empression=[]
rate=[]
evalu_num=[]
#爬取并顯示top250電影的名稱(chēng),圖片地址,演員等
def allfilm(web_url,data=None):
web_data=requests.get(web_url,headers = headers)
soup=BeautifulSoup(web_data.text,'lxml')
time.sleep(2)
titles=soup.select('#content > div > div.article > ol > li > div > div.info > div.hd > a')
images=soup.select('#content > div > div.article > ol > li > div > div.pic > a > img')
actors=soup.select('#content > div > div.article > ol > li > div > div.info > div.bd > p:nth-of-type(1)') #bd樹(shù)下的第一個(gè)p標(biāo)籤
empressions=soup.select('#content > div > div.article > ol > li > div > div.info > div.bd > p:nth-of-type(2)')
rates=soup.select('#content > div > div.article > ol > li > div > div.info > div.bd > div > span.rating_num')
evalu_nums=soup.select('#content > div > div.article > ol > li > div > div.info > div.bd > div > span:nth-of-type(4)')
#content > div > div.article > ol > li:nth-child(1) > div > div.info > div.bd > div > span:nth-child(4)
#content > div > div.article > ol > li:nth-child(2) > div > div.info > div.bd > div > span:nth-child(4)
for title1,image1,actor1,empression1,rate1,evalu_num1 in zip(titles,images,actors,empressions,rates,evalu_nums):
title.append(title1.get_text().replace('\\xa0',' ').strip()),
image.append(image1.get('src')),
actor.append(actor1.get_text().replace('\\xa0',' ').strip()),
empression.append(empression1.get_text()),
rate.append(rate1.get_text()),
evalu_num.append(evalu_num1.get_text())
for sigle_url in urls:
allfilm(sigle_url)
data={'title':title,
'image':image,
'actor':actor,
'empression':empression,
'rate':rate,
'evalu_num':evalu_num}
#frame=DataFrame(data,columns=[u'電影名',u'圖片鏈接',u'演員',u'印象',u'評(píng)分',u'評(píng)價(jià)數(shù)'])
print('done!!')
frame=DataFrame(data,columns=['title','image','actor','empression','rate','evalu_num'])
frame.columns=[u'電影名',u'圖片鏈接',u'演員',u'印象',u'評(píng)分',u'評(píng)價(jià)數(shù)']
#將dataframe數(shù)據(jù)寫(xiě)入csv或xlsx文件
frame.to_excel('C:\\Users\\zhchenjia\\Desktop\doubanfilm.xlsx',index=True)
python爬取豆瓣電影排行榜
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- Python 2.7IDE Pycharm 5.0.3 具體Selenium和PhantomJS配置及使用請(qǐng)看調(diào)用...
- Python 2.7IDE Pycharm 5.0.3Firefox 47.0.1 豆瓣電影系列: 基礎(chǔ)抓取(限于...
- Python 2.7IDE Pycharm 5.0.3 如有興趣可以從如下幾個(gè)開(kāi)始看起,其中有我遇到的很多問(wèn)題:基...
- Python 2.7IDE Pycharm 5.0.3 具體Selenium及PhantomJS請(qǐng)看Python+...
- 《四重奏》里面有一句臺(tái)詞:“哭著吃過(guò)飯的人,是能夠走下去的。” 經(jīng)歷過(guò)人生的風(fēng)風(fēng)雨雨,行走過(guò)四處陌生的城市?;氐郊?..