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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2023/12/18 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫数据可视化豆瓣评分top250_Python数据可视化:豆瓣电影TOP250 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:Python數據可視化:豆瓣電影TOP250

源 /法納斯特文 /小F

本文轉載自「法納斯特」

搜索「walker398」即可關注

豆瓣電影TOP250,對于眾多爬蟲愛好者,應該并不陌生。

很多人都會以此作為第一個練手的小項目。

當然這也多虧了豆瓣的包容,沒有加以太多的反爬措施,對新手比較友好。

本期通過Scrapy框架,對豆瓣電影TOP250信息進行爬取。

同時對獲取的數據進行可視化分析,給大家帶來一個不一樣的TOP250。

/ 01 / Scrapy

之前了解了pyspider框架的使用,但是就它而言,只能應用于一些簡單的爬取。

對于反爬程度高的網站,它就顯得力不從心。

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

當然目前我學習的都是簡單爬蟲,上述內容都是道聽途說,并不是切身體會。

Scrapy的安裝相對復雜,依賴的庫較多。

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

首先任意文件夾下命令行運行scrapy startproject doubanTop250,創建一個名為doubanTop250的文件夾。

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

進入文件夾里,命令行運行scrapy genspider douban movie.douban.com/top250。

最后會生成一個douban.py文件,Scrapy用它來從網頁里抓取內容,并解析抓取結果。

最終修改程序如下。

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

# 獲取下一頁鏈接,并進入下一頁

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

ifnext:

url = response.urljoin(next)

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

pass

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

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

在這個之后,還需要在settings.py文件添加用戶代理和請求延時。

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

命令行就會顯示獲取的結果啦!!!

這里豆瓣的信息有Unicode編碼,我也不知為何要在一個網頁里設置兩種編碼。

在當前文件夾命令行運行scrapy crawl douban -o douban.csv,即可輸出csv文件。

由于在處理的時候沒有去除空格,造成有兩種編碼存在,無法通過Excel查看。

這里就貼一個文本文檔,后續會在數據可視化里去除Unicode編碼。

/ 02 / 數據可視化

01 電影上映年份分布

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

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

02 中外電影上映年份分布

明顯感受到了國產電影和國外電影的差距,90年代還行,還能過過招。

越往后,國產電影就基本就沒有上榜的。

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

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

影評人周黎明:如果一部影片既沒有表達,也沒有最基本的技術水準,那應該是最徹底的爛片。

講道理,國產爛片還真不少...

03 中外電影評分情況

通過上張圖,我們知道國外電影是占據了榜單的大多數。

不過這里評分情況,倒是倍感欣慰,說明國產電影中的精品也不錯,和國外電影并沒有太大的差距。

只是這些影片貌似有點老了...

04 電影數TOP10

美國遙遙領先,中國位居其中。

在我的那篇「2018年電影分析」中,中國目前可是個電影高產國,結果呢...

香港都比內地的多。這里不得不佩服90,00年代的香港影業,確實很強!

05 電影評分分布

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

06 評論人數TOP10

讓我們來看看人氣最高的有哪些影片,你又看過幾部呢?

記得上學的時候,時間多。我根據IMDbTOP250,看了榜上大部分的電影。

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

07 排名評分人數三維度

總的來說,排名越靠前,評價人數越多,并且分數也越高。

08 年份評分人數三維度

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

在90年代有個小高峰,不僅評價高,人氣還高。

往后的數據就相對平穩,變化不是太大。

09 電影類型圖

和我之前「2018年電影分析」比較一下,發現榜單里「動作」片減少不少,其他差別不大。

這算不算是間接說明國人更喜歡視覺上的東西呢?

/ 03 / 總結

本次只是一個簡單的Scrapy操作,目的就是簡單了解一下它的使用。

以后或許會更深入去學習Scrapy框架,所以慢慢等小F填坑吧!

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

文末點個贊,比心!!!

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

責任編輯:

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。