目錄
涉及知識(shí)
自動(dòng)打開想要獲取到數(shù)據(jù)的頁(yè)面
繪制統(tǒng)計(jì)圖
初步設(shè)計(jì)過程
自動(dòng)化測(cè)試
所需數(shù)據(jù)包
初步過程分析
爬取數(shù)據(jù)
所需數(shù)據(jù)包
初步過程分析
數(shù)據(jù)分析與可視化(繪圖)
所需數(shù)據(jù)包
各類統(tǒng)計(jì)圖簡(jiǎn)介:
詳細(xì)設(shè)計(jì)過程
導(dǎo)入所有數(shù)據(jù)包與數(shù)據(jù)集
數(shù)據(jù)分析
數(shù)據(jù)情況預(yù)覽
數(shù)據(jù)獲取與分析?
存儲(chǔ)
涉及知識(shí)
按照實(shí)驗(yàn)完成順序:
·自動(dòng)化測(cè)試:selenium
·爬蟲:requests
·數(shù)據(jù)解析:json
·數(shù)據(jù)清洗
·數(shù)據(jù)分析:numpy,matpltlib,pandas
自動(dòng)打開想要獲取到數(shù)據(jù)的頁(yè)面
(1)注意偽裝好,繞過瀏覽器識(shí)別;
(2)反反爬。
繪制統(tǒng)計(jì)圖
(1)注意即將繪制的圖是否有缺失值等;
(2)注意查看數(shù)據(jù)問題。
初步設(shè)計(jì)過程
自動(dòng)化測(cè)試
所需數(shù)據(jù)包
from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
初步過程分析
(1)確定瀏覽器版本,下載相應(yīng)驅(qū)動(dòng)。
(2)防止瀏覽器自動(dòng)關(guān)閉
option = webdriver.EdgeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_experimental_option("detach", True)
driver = webdriver.Edge(executable_path='./edge driver', options=option)
(3)進(jìn)入12306官網(wǎng),尋找相應(yīng)標(biāo)簽,定位元素位置(id, name, class, tag, xpath, css, link等)。
(4)一些網(wǎng)站具有反爬機(jī)制,反爬方式多種多樣,12306中為驗(yàn)證碼滑塊,主要用到行為鏈,讓瀏覽器識(shí)別不到爬蟲。
具體操作:找到滑塊id('nc_1_n1z'),創(chuàng)建對(duì)象,判斷,執(zhí)行。
(5) 成功登錄后,有目的性地尋找所需標(biāo)簽,模仿鼠標(biāo)與鍵盤響應(yīng)方式。常見的一些方法如下:click(),clear(),send_keys(),perform()等。如下所示:
(6)此次實(shí)驗(yàn),我沒有完成最后一步,因?yàn)?2306每天只有三次取消訂單機(jī)會(huì),而且我最近測(cè)試次數(shù)比較多,害怕被拉入黑名單。
(7)完成這些之后,開始爬取當(dāng)前頁(yè)面我們想要的數(shù)據(jù)。
爬取數(shù)據(jù)
所需數(shù)據(jù)包
import requests
import pandas as pd
import json
from tqdm import tqdm
初步過程分析
(1)確定目標(biāo)網(wǎng)址:
如我要獲取12306中從太原南到侯馬西,往返,2022-11-19日的所有車票信息,網(wǎng)址如下圖所示,除此之外,仍然要做好偽裝,如下圖 3.11所示,其中User-Agent(用戶代理,瀏覽器基本身份標(biāo)識(shí)),Cookie(用戶信息,常用于檢測(cè)是否登陸賬號(hào))都是用來偽裝的。
(2)獲取網(wǎng)頁(yè)數(shù)據(jù):文章來源:http://www.zghlxwxcb.cn/news/detail-529310.html
獲取網(wǎng)頁(yè)數(shù)據(jù),也就是通過網(wǎng)址( URL:Uniform Resource Locator,統(tǒng)一資源 定位符),獲得網(wǎng)絡(luò)的數(shù)據(jù),充當(dāng)搜索引擎。當(dāng)輸入網(wǎng)址,我們就相當(dāng)于對(duì)網(wǎng)址服務(wù)器發(fā)送了一個(gè)請(qǐng)求,網(wǎng)站服務(wù)器收到以后,進(jìn)行處理和解析,進(jìn)而給我們一個(gè)相應(yīng)的相應(yīng)。如果網(wǎng)絡(luò)正確并且網(wǎng)址不錯(cuò),一般都可以得到網(wǎng)頁(yè)信息,否則告訴我們一個(gè)錯(cuò)誤代碼,比如404. 整個(gè)過程可以稱為請(qǐng)求和響應(yīng)。文章來源地址http://www.zghlxwxcb.cn/news/detail-529310.html
到了這里,關(guān)于數(shù)據(jù)分析與可視化(python大作業(yè))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!