Skip to content

andylee40/Pet-web

Repository files navigation

title tags description
網路爬蟲
工作整理
網路爬蟲

網路爬蟲與每日自動更新儀表板網頁

簡介:

利用 Python 進行網路爬蟲,將資料清洗過後回傳至資料庫,結合 Crontab 排程系統,每日自動執行以上動作,最後將資料視覺化,使用 amCharts 將資料繪製成動態圖表。


工具使用介紹:

👉資料庫:MySQL

👉前端顯示 : HTML、CSS、Boostrap、Javascript

👉後端串連 : PHP

👉網路爬蟲 : Python (BeautifulSoup、Selenium)


網頁展示連結:

http://203.145.215.249/hong_pet/home.php


Step1 : 爬取寵物資訊網頁資料

👇利用 Python 爬取以下3個網頁資料

  1. 財政部稅籍(https://data.gov.tw/dataset/9400)

  1. 寵物食品申報網 (https://petfood.moa.gov.tw/Web/Food)

  1. 特定寵物業管理系統 (https://www.pet.gov.tw/Web/BusinessList.aspx)

Step2 : 將清洗過後資料匯入資料庫

👇設計儲存資料之資料庫與資料表


👇資料表示意圖(Table : pet_manage2)


Step3 : 結合 Ubuntu 排程系統每日自動執行

👇利用Ubuntu排程系統,每日固定時間執行抓取資料與匯入資料庫之動作


Step4 : 使用 PHP 串連後端資料庫

👇利用PHP串連MySQL,並將資料整理成指定格式

<?php
$servername = "localhost";
$username = "帳號";
$password = "密碼";
$dbname = "pet";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) 
    {
      die("Connection failed: " . $conn->connect_error);
    }
$conn -> set_charset("utf8");

$sql="SELECT 特定寵物種類,
sum(if(經營業務項目 LIKE '%繁殖%',1,0)) 繁殖,
sum(if(經營業務項目 LIKE '%買賣%',1,0)) 買賣,
sum(if(經營業務項目 LIKE '%寄養%',1,0)) 寄養
from pet_manage2
where 特定寵物種類 !=".'""'." 
GROUP BY 特定寵物種類
order by 繁殖 desc";
$result = mysqli_query($conn, $sql);
$conn->close();
while($row = mysqli_fetch_assoc($result)) 
    {  
    $row['繁殖']=intval($row['繁殖']);
    $row['買賣']=intval($row['買賣']);
    $row['寄養']=intval($row['寄養']);
    $array[] = $row;
    };
$data=json_encode($array, JSON_UNESCAPED_UNICODE);
?>

Step5 : 使用 HTML & CSS & Javascipt 並結合 amChart 設計網頁

⭐amCharts : 為開源免費繪製圖表套件,且能使圖表動態化,點選標籤即可顯示或隱藏資料