作業要求來自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2851
1. 簡單說明爬蟲原理
通過程式模拟浏覽器請求站點的行為,把站點傳回的HTML代碼/JSON資料/二進制資料(圖檔、視訊) 爬到本地,進而提取自己需要的資料,存放起來使用。

2. 了解爬蟲開發過程
1).簡要說明浏覽器工作原理;
HTTP協定的作用原理包括四個步驟:
①連接配接:Web浏覽器與Web伺服器建立連接配接,打開一個稱為socket(套接字)的虛拟檔案,此檔案的建立标志着連接配接建立成功。
②請求:Web浏覽器通過socket向Web伺服器送出請求。HTTP的請求一般是GET或POST指令(POST用于FORM參數的傳遞)。GET指令的格式為: GET 路徑/檔案名 HTTP/1.0 檔案名指出所通路的檔案,HTTP/1.0指出Web浏覽器使用的HTTP版本。
③ 應答:Web浏覽器送出請求後,通過HTTP協定傳送給Web伺服器。Web伺服器接到後,進行事務處理,處理結果又通過HTTP傳回給Web浏覽器,進而在Web浏覽器上顯示出所請求的頁面。
④關閉連接配接:當應答結束後,Web浏覽器與Web伺服器必須斷開,以保證其它Web浏覽器能夠與Web伺服器建立連接配接。
2).使用 requests 庫抓取網站資料;
requests.get(url) 擷取校園新聞首頁html代碼
import requests
#requests.get(url) 擷取校園新聞首頁html代碼
url="http://www.gzcc.cn/";
r=requests.get(url);
r.raise_for_status();
r.encoding=r.status_code;
print(r.text);
3).了解網頁
寫一個簡單的html檔案,包含多個标簽,類,id
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
div,span{
font-size:20px;
color: #0000FF;
}
.one{
font-size:30px;
}
</style>
<meta charset="UTF-8">
<title></title>
<script src="js/jquery-1.9.0.js"></script>
<script src="js/jsseclector.js"></script>
</head>
<body>
<p align="center" class="one" id="一"><font size="5" >第一章:jQuery概述</font></p>
<span id="1-1">1.1 初識jQuery
<div> <a href="" id="1.1.1">--1.1.1 什麼是jQuery</a></div>
<div> --1.1.2 jQuery的優勢</div>
<div> --1.1.3 下載下傳jQuery腳本檔案和配置jQuery環境</div>
<div> --1.1.4 第一個簡單的jQuery程式</div>
</span>
<span id="1-2">1.2 jQuery對象和DOM對象
<div> <a href="">--2.1.1 DOM對象</a></div>
<div> --2.1.2 jQuery對象</div>
</span>
<span id="1-3" >1.3 jQuery開發工具
<div> <a href="">--3.1.1 使用Dreamweaver編輯jQuery程式</a></div>
<div> --3.1.2 調試jQuery程式</div>
</span>
</body>
</html>
4).使用 Beautiful Soup 解析網頁;
通過BeautifulSoup(html_sample,'html.parser')把上述html檔案解析成DOM Tree
select(選擇器)定位資料
①找出含有特定标簽的html元素:
print(soup.select("div"));
②找出含有特定類名的html元素:
print(soup.select(".thirdthSize"));
③找出含有特定id名的html元素:
print(soup.select("#oneBytwo"));
3.提取一篇校園新聞的标題、釋出時間、釋出機關
import requests
import bs4
from bs4 import BeautifulSoup
#擷取網頁
url="http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0320/11029.html";
r=requests.get(url);
r.encoding=r.apparent_encoding;
text=r.text;
#print(text);
#解析網頁
soup=BeautifulSoup(text,"html.parser");
#新聞标題
title=soup.select(".show-title");
print(title);
#釋出時間與釋出機關
time=soup.select(".show-info");
print(time);