爬取豆瓣電影top250提取電影分類進行資料分析
1 | i=str(i).split('/') |
來把內容分隔成幾項內容,因為電影分類排在最後,所以我們通過
1 | i=i[len(i)-1] |
來獲取分隔後的最後一項也就是我們需要的電影分類,還有最後一步我們需要完成的,因為一部電影裡面一般都有多個電影分類的標籤,所以我們還要繼續分隔獲取到的電影分類,並且觀察可以知道電影分類之間只是用一個空格隔開,所以我們使用下面一行程式碼就可以分離出各個分類:
1 | key=i.strip().replace('\n','').split(' ') |
二、接下來就是儲存到mysql資料庫
把電影分類儲存在mysql資料庫以便下面進行資料分析,這裡我們使用到pymysql來連線mysql資料庫,首先我們需要在mysql資料庫建好表:
然後我們通過pymysql把資料儲存到資料庫中,程式碼如下:
首先要連線資料庫:
1234 | # 連線mysql資料庫conn=pymysql.connect(host='localhost',user='root',passwd='2014081029',db='mysql',charset='utf8') # user為資料庫的名字,passwd為資料庫的密碼,一般把要把字符集定義為utf8,不然存入資料庫容易遇到編碼問題cur=conn.cursor() # 獲取操作遊標cur.execute('use douban') # 使用douban這個資料庫 |
在儲存到資料庫之前,我們還有一個需要做得,那就是把250部電影的分類彙總數量,所以我們定義了一個字典來統計電影分類的個數,這裡的程式碼是get_page函式的一部分,程式碼如下:
123456789101112 | foriincontent[1::2]:print(str(i).strip().replace('\n\r',''))# print(str(i).split('/'))i=str(i).split('/')i=i[len(i)-1]key=i.strip().replace('\n','').split(' ')print(key)foriinkey:ifinotindouban.keys():douban[i]=1else:douban[i]+=1 |
然後定義一個儲存函式,執行插入操作,如果出現插入失敗,就執行回滾操作,還有記得在操作完成之後,使用conn.close()和cur.close()來關閉資料庫連線,程式碼如下:
Python12345678910111213 | defsave_mysql(douban):print(douban)# douban在主函式中定義的字典forkey indouban:print(key)print(douban[key])ifkey!='':try:sql='insert douban(類別, 數量) value('+"\'"+key+"\',"+"\'"+str(douban[key])+"\'"+');'cur.execute(sql)conn.commit()except:print('插入失敗')conn.rollback() |
三、使用matplotlib進行資料視覺化操作
首先,從資料庫中把電影分類和每個分類的數量分別存入一個列表中,然後使用matplotlib進行視覺化操作,具體如下:
1234567891011121314151617181920212223242526 | def pylot_show():sql='select * from douban;'cur.execute(sql)rows=cur.fetchall()# 把表中所有欄位讀取出來count=[]# 每個分類的數量category=[]# 分類forrow inrows:count.append(int(row[2]))category.append(row[1])y_pos=np.arange(len(category))# 定義y軸座標數plt.barh(y_pos,count,align='center',alpha=0.4)# alpha圖表的填充不透明度(0~1)之間plt.yticks(y_pos,category)# 在y軸上做分類名的標記forcount,y_pos inzip(count,y_pos):# 分類個數在圖中顯示的位置,就是那些數字在柱狀圖尾部顯示的數字plt.text(count,y_pos,count,horizontalalignment='center',verticalalignment='center',weight='bold')plt.ylim(+28.0,-1.0)# 視覺化範圍,相當於規定y軸範圍plt.title(u'豆瓣電影250')# 圖表的標題plt.ylabel(u'電影分類')# 圖表y軸的標記plt.subplots_adjust(bottom=0.15)plt.xlabel(u'分類出現次數')# 圖表x軸的標記plt.savefig('douban.png')# 儲存圖片 |
下面說明一下matplotlib的一些簡單使用,首先我們要匯入matplotlib和numpy的包
12 | import numpy asnpimport matplotlib.pyplot asplt |
這次視覺化是柱狀圖,這裡給出brah()函式的定義:
barh()
主要功能:做一個橫向條形圖,橫向條的矩形大小為: left, left + width, bottom, bottom + height
引數:barh ( bottom , width , height =0.8, left =0, **kwargs )
返回型別:一個 class 類別, matplotlib.patches.Rectangle**例項
引數說明:
- bottom: Bars 的垂直位置的底部邊緣
- width: Bars 的長度
可選引數: - height: bars 的高度
- left: bars 左邊緣 x 軸座標值
- color: bars 顏色
- edgecolor: bars 邊緣顏色
- linewidth: bar 邊緣寬度;None 表示預設寬度;0 表示不 i 繪製邊緣
- xerr: 若不為 None,將在 bar 圖上生成 errobars
- yerr: 若不為 None,將在 bar 圖上生成 errobars
- ecolor: 指定 errorbar 顏色
- capsize: 指定 errorbar 的頂部(cap)長度
- align: ‘edge’ (預設) | ‘center’:‘edge’以底部為準對齊;‘center’以 y 軸作為中心
- log: [False|True] False (預設),若為 True,使用 log 座標
然後就可以顯示出圖片來了
相關推薦
Python爬取微信公眾號歷史文章進行資料分析
思路: 1. 安裝代理AnProxy,在手機端安裝CA證書,啟動代理,設定手機代理; 2. 獲取目標微信公眾號的__biz; 3. 進入微信公眾號的歷史頁面; 4. 使用Monkeyrunner控制滑屏;獲取更多的歷史訊息; 5. 記錄文章標題,摘要,建立時間,創作型別,地
爬取豆瓣電影top250提取電影分類進行資料分析
下的一部分 ”’ content = selector.xpath(‘//div[@class=”info”]/div[@class=”bd”]/p/text()’) print(content) for i in content[1::2]: print(str(i).strip().replace(‘nr
爬蟲-爬取豆瓣圖書TOP250
info spa data inf code pla select lac lec import requests from bs4 import BeautifulSoup def get_book(url): wb_data = requests.get(u
用Requests和正則表示式爬取豆瓣圖書TOP250
思路和上文大同小異。 import requests from requests.exceptions import RequestException import re import json headers = {'User-Agent':'Mozilla/5.0(Macinto
python3爬取豆瓣圖書Top250圖片
本部落格只爬取豆瓣圖書Top250的圖片,各位愛書的小夥伴趕緊學起來,爬完的效果圖如下: 我這段程式碼的目錄結構如下: 程式碼在此: # -*- coding:utf-8 -*- import requests from lxml import etree def spid
requests+正則表示式爬取豆瓣讀書top250
簡單的python練手專案,通過rquests庫請求得到豆瓣top250網頁原始碼,並通過正則表示式匹配得到對應資訊-書名,作者資訊,評分以及簡介。 網站的URL為’https://book.douban.com/top250?start=0’,但我們拉到底部發現250本讀書的資訊被分成了1
Python3 爬取豆瓣圖書Top250並存入Excel中
#coding=utf-8 import re import xlwt import requests from bs4 import BeautifulSoup def getHtml(url): headers = {'User-Agent': 'Mo
教你用Python爬取豆瓣圖書Top250
質量、速度、廉價,選擇其中兩個 這篇文章將會用到上一篇文章所講的內容,如果沒有看過可以去看一下教你用Python寫excel 今天我們要做的就是用Python爬取豆瓣圖書Top250,先開啟網站看一下 今天不談這豆瓣圖書top250垃圾不垃圾的問題,只看看怎麼用p
利用Requests庫和正則表示式爬取豆瓣影評Top250
說明 最近看了下爬蟲基礎,想寫個部落格來記錄一下,一來是可以方便和我一樣剛入門的小白來參考學習,二來也當做自己的筆記供自己以後查閱。 本文章是利用python3.6和Requests庫(需自行安裝,cmd裡執行pip install r
爬取豆瓣圖書top250
from lxml import etree import requests import csv f=open('H://python/douban.csv','wt',newline='',encoding='utf-8') writer=csv.writ
Python爬蟲實戰(3)-爬取豆瓣音樂Top250資料(超詳細)
前言 首先我們先來回憶一下上兩篇爬蟲實戰文章: 第一篇:講到了requests和bs4和一些網頁基本操作。 第二篇:用到了正則表示式-re模組 今天我們用lxml庫和xpath語法來爬蟲實戰。 1.安裝lxml庫 window:直接用pip去
利用python爬取豆瓣音樂TOP250
最近無所事事,在逼乎看到別人爬取了豆瓣電影,發現挺適合我這菜雞練練手 所以我來爬音樂。。 #對不起豆瓣,又是爬你。。 目標網站:https://music.douban.com/top250?start=0 首先正常瀏覽分析網頁 開啟網址,點選下一頁,發現網站URL變成
爬取豆瓣音樂Top250並存入xls
import requests from bs4 import BeautifulSoup import re import xlwt class DoubanMusic: def __ini
python 爬蟲實戰(一)爬取豆瓣圖書top250
import requests from lxml import etree with open('booktop250.txt','w',encoding='utf-8') as f: f
python 爬取 豆瓣網 搜尋結果 同城活動 資料
主要使用的庫: requests:爬蟲請求並獲取原始碼 re:使用正則表示式提取資料 json:使用JSON提取資料 pandas:使用pandans儲存資料 bs4:網頁程式碼解析 以下是原始碼: #!coding=utf-8 import requests
scrapy爬取豆瓣電影top250
imp port 爬取 all lba item text request top 1 # -*- coding: utf-8 -*- 2 # scrapy爬取豆瓣電影top250 3 4 import scrapy 5 from douban.items i
團隊-張文然-需求分析-python爬蟲分類爬取豆瓣電影信息
工具 新的 翻頁 需求 使用 html 頁面 應該 一個 首先要明白爬網頁實際上就是:找到包含我們需要的信息的網址(URL)列表通過 HTTP 協議把頁面下載回來從頁面的 HTML 中解析出需要的信息找到更多這個的 URL,回到 2 繼續其次還要明白:一個好的列表應該:包含
團隊-爬取豆瓣電影TOP250-需求分析
影評 鏈接 lock 分析 strong str 需求分析 豆瓣 信息 團隊-爬取豆瓣電影TOP250-需求分析 需求:爬取豆瓣電影TOP250 *向用戶展示電影的排名,分數,名字,簡介,導演,演員,前10條影評信息,鏈接信息 實現思路: 分析豆瓣電影TOP250
《團隊-爬取豆瓣電影TOP250-需求分析》
round ack 地址 align wid ica san pad ext 需求: 1.搜集相關電影網址 2.實現相關邏輯的代碼 項目步驟: 1.通過豆瓣網搜索關鍵字,獲取相關地址 2.根據第三方包實現相關邏輯《團隊-爬取豆瓣電影TOP250-需求分析》
團隊-爬取豆瓣電影TOP250-開發環境搭建過程
技術 團隊 img mage www. 9.png 官網下載 har image 從官網下載安裝包(http://www.python.org)。 安裝Python 選擇安裝路徑(我選的默認) 安裝Pycharm 1.從官網下載安裝包(ht