日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python爬虫数据可视化豆瓣评分top250_Python数据可视化:豆瓣电影TOP250

發(fā)布時(shí)間:2023/12/18 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫数据可视化豆瓣评分top250_Python数据可视化:豆瓣电影TOP250 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原標(biāo)題:Python數(shù)據(jù)可視化:豆瓣電影TOP250

源 /法納斯特文 /小F

本文轉(zhuǎn)載自「法納斯特」

搜索「walker398」即可關(guān)注

豆瓣電影TOP250,對(duì)于眾多爬蟲愛(ài)好者,應(yīng)該并不陌生。

很多人都會(huì)以此作為第一個(gè)練手的小項(xiàng)目。

當(dāng)然這也多虧了豆瓣的包容,沒(méi)有加以太多的反爬措施,對(duì)新手比較友好。

本期通過(guò)Scrapy框架,對(duì)豆瓣電影TOP250信息進(jìn)行爬取。

同時(shí)對(duì)獲取的數(shù)據(jù)進(jìn)行可視化分析,給大家?guī)?lái)一個(gè)不一樣的TOP250。

/ 01 / Scrapy

之前了解了pyspider框架的使用,但是就它而言,只能應(yīng)用于一些簡(jiǎn)單的爬取。

對(duì)于反爬程度高的網(wǎng)站,它就顯得力不從心。

那么就輪到Scrapy上場(chǎng)了,目前Python中使用最廣泛的爬蟲框架。

當(dāng)然目前我學(xué)習(xí)的都是簡(jiǎn)單爬蟲,上述內(nèi)容都是道聽途說(shuō),并不是切身體會(huì)。

Scrapy的安裝相對(duì)復(fù)雜,依賴的庫(kù)較多。

不過(guò)通過(guò)度娘,最后我是成功安裝了的。放在C盤,如今我的C盤要爆炸。

首先任意文件夾下命令行運(yùn)行scrapy startproject doubanTop250,創(chuàng)建一個(gè)名為doubanTop250的文件夾。

然后在文件夾下的py文件中改寫程序。

進(jìn)入文件夾里,命令行運(yùn)行scrapy genspider douban movie.douban.com/top250。

最后會(huì)生成一個(gè)douban.py文件,Scrapy用它來(lái)從網(wǎng)頁(yè)里抓取內(nèi)容,并解析抓取結(jié)果。

最終修改程序如下。

importscrapy

fromscrapy importSpider

fromdoubanTop250.items importDoubantop250Item

classDoubanSpider(scrapy.Spider):

name = 'douban'

allowed_domains = ['douban.com']

start_urls = ['https://movie.douban.com/top250/']

defparse(self, response):

lis = response.css('.info')

forli inlis:

item = Doubantop250Item()

# 利用CSS選擇器獲取信息

name = li.css('.hd span::text').extract()

title = ''.join(name)

info = li.css('p::text').extract()[1].replace('n', '').strip()

score = li.css('.rating_num::text').extract_first()

people = li.css('.star span::text').extract()[1]

words = li.css('.inq::text').extract_first()

# 生成字典

item['title'] = title

item['info'] = info

item['score'] = score

item['people'] = people

item['words'] = words

yielditem

# 獲取下一頁(yè)鏈接,并進(jìn)入下一頁(yè)

next = response.css('.next a::attr(href)').extract_first()

ifnext:

url = response.urljoin(next)

yieldscrapy.Request(url=url, callback=self.parse)

pass

生成的items.py文件,是保存爬取數(shù)據(jù)的容器,代碼修改如下。

importscrapy

classDoubantop250Item(scrapy.Item):

# define the fields for your item here like:

# name = scrapy.Field()

title = scrapy.Field()

info = scrapy.Field()

score = scrapy.Field()

people = scrapy.Field()

words = scrapy.Field()

pass

在這個(gè)之后,還需要在settings.py文件添加用戶代理和請(qǐng)求延時(shí)。

最后在douban.py所在文件夾下打開命令行,輸入scrapy crawl douban。

命令行就會(huì)顯示獲取的結(jié)果啦!!!

這里豆瓣的信息有Unicode編碼,我也不知為何要在一個(gè)網(wǎng)頁(yè)里設(shè)置兩種編碼。

在當(dāng)前文件夾命令行運(yùn)行scrapy crawl douban -o douban.csv,即可輸出csv文件。

由于在處理的時(shí)候沒(méi)有去除空格,造成有兩種編碼存在,無(wú)法通過(guò)Excel查看。

這里就貼一個(gè)文本文檔,后續(xù)會(huì)在數(shù)據(jù)可視化里去除Unicode編碼。

/ 02 / 數(shù)據(jù)可視化

01 電影上映年份分布

這里可以看出豆瓣電影TOP250里,電影的上映年份,多分布于80年代以后。

其中有好幾年是在10部及以上的。

02 中外電影上映年份分布

明顯感受到了國(guó)產(chǎn)電影和國(guó)外電影的差距,90年代還行,還能過(guò)過(guò)招。

越往后,國(guó)產(chǎn)電影就基本就沒(méi)有上榜的。

每年電影出得倒是不少,真正質(zhì)量好的又能有幾部呢?

今天剛好看到新周刊的推文「2018年10大爛片」。

影評(píng)人周黎明:如果一部影片既沒(méi)有表達(dá),也沒(méi)有最基本的技術(shù)水準(zhǔn),那應(yīng)該是最徹底的爛片。

講道理,國(guó)產(chǎn)爛片還真不少...

03 中外電影評(píng)分情況

通過(guò)上張圖,我們知道國(guó)外電影是占據(jù)了榜單的大多數(shù)。

不過(guò)這里評(píng)分情況,倒是倍感欣慰,說(shuō)明國(guó)產(chǎn)電影中的精品也不錯(cuò),和國(guó)外電影并沒(méi)有太大的差距。

只是這些影片貌似有點(diǎn)老了...

04 電影數(shù)TOP10

美國(guó)遙遙領(lǐng)先,中國(guó)位居其中。

在我的那篇「2018年電影分析」中,中國(guó)目前可是個(gè)電影高產(chǎn)國(guó),結(jié)果呢...

香港都比內(nèi)地的多。這里不得不佩服90,00年代的香港影業(yè),確實(shí)很強(qiáng)!

05 電影評(píng)分分布

大多分布于「8.5」到「9.2」之間。最低「8.3」,最高「9.6」。

06 評(píng)論人數(shù)TOP10

讓我們來(lái)看看人氣最高的有哪些影片,你又看過(guò)幾部呢?

記得上學(xué)的時(shí)候,時(shí)間多。我根據(jù)IMDbTOP250,看了榜上大部分的電影。

于是乎豆瓣電影這個(gè)TOP10,我也全看過(guò)了,都是一些有故事的電影。

07 排名評(píng)分人數(shù)三維度

總的來(lái)說(shuō),排名越靠前,評(píng)價(jià)人數(shù)越多,并且分?jǐn)?shù)也越高。

08 年份評(píng)分人數(shù)三維度

這里就更加明顯看出榜單上電影分布情況,大部分都是80年代以后的。

在90年代有個(gè)小高峰,不僅評(píng)價(jià)高,人氣還高。

往后的數(shù)據(jù)就相對(duì)平穩(wěn),變化不是太大。

09 電影類型圖

和我之前「2018年電影分析」比較一下,發(fā)現(xiàn)榜單里「動(dòng)作」片減少不少,其他差別不大。

這算不算是間接說(shuō)明國(guó)人更喜歡視覺(jué)上的東西呢?

/ 03 / 總結(jié)

本次只是一個(gè)簡(jiǎn)單的Scrapy操作,目的就是簡(jiǎn)單了解一下它的使用。

以后或許會(huì)更深入去學(xué)習(xí)Scrapy框架,所以慢慢等小F填坑吧!

閱讀原文,代碼都放「GitHub」上頭了。

文末點(diǎn)個(gè)贊,比心!!!

··· END ···返回搜狐,查看更多

責(zé)任編輯:

總結(jié)

以上是生活随笔為你收集整理的python爬虫数据可视化豆瓣评分top250_Python数据可视化:豆瓣电影TOP250的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。