對于網(wǎng)頁,除了傳統(tǒng)的css框架以外,額外可以嘗試的一個css框架是semantic ui,我們可以根據(jù)這個框架結(jié)合html寫一些簡單的靜態(tài)網(wǎng)頁,有如下步驟
1.使用基礎(chǔ)樣式
2.使用“形容詞”改變樣式
3.使用嵌套制作網(wǎng)頁片段
而對于css樣式的調(diào)用,在<head></head>
這個標(biāo)簽內(nèi)使用<link rel="stylesheet" href="css/semantic.css" media="screen" title="no title" charset="utf-8">
來調(diào)用,其中href的值為css的樣式路徑,一定要加載正確
- 關(guān)于基礎(chǔ)樣式
先來看下面這段代碼
<div class="ui segment"
</div>
這是一個基礎(chǔ)的樣式,我們可以利用segment把一個網(wǎng)頁分為header、body(content)、footer。每一個segment都可以看作是一個片段。
- 關(guān)于“形容詞”改變樣式
先來看下面這段代碼
<div class="ui inverted vertical segment">
</div>
來看幾個常用的形容詞,inverted(翻轉(zhuǎn),一般后面跟顏色)、vertical(圓角消失、陰影消失、消除段落間隙)、(very)padded(內(nèi)聚,限制文字與邊框有一定距離)、container(收緊、內(nèi)斂聚中),另外像big、tiny等形容詞也可以使用
說到這,有必要提供一個semantic ui的中文網(wǎng)站,Semanti UI,當(dāng)然也可以使用英文咯
- 關(guān)于嵌套
在基本樣式里面定義了segment片段,我們可以在segment內(nèi)再進(jìn)行定義segment或者其他來制作片段的“卡片”,來3段代碼
<div class="ui inverted vertical segment">
<div class="ui image">

</div>
</div>
片段內(nèi)插入圖片
<div class="ui vertical segment">
<div class="ui container segment">
<h1 class="ui header">First blog</h1>
<p>
古有為中華之崛起而讀書,今有為了出去浪而coding
</p>
<button type="button" name="button" class="ui inverted blue button">Read more</button>
</div>
片段內(nèi)插入另一個segment形成卡片,插入<h1 class="ui header">First blog</h1>
形成段落內(nèi)一級標(biāo)題,當(dāng)然還有二級三級...,插入<p></p>
填充卡片內(nèi)容。在使用嵌套時候,要注意父子關(guān)系,目前我們了解到的沒有閉合標(biāo)簽的有2個,一個是img,一個是link,其他的都要注意閉合標(biāo)簽。下面是一個簡單的靜態(tài)頁面
關(guān)于HTTP狀態(tài)碼
HTTP狀態(tài)碼:
200系列:200、201.....代表成功
300系列:304.......代表沒有修改
400系列:404.......代表沒找到
500系列:500、502.......代碼服務(wù)不響應(yīng)
HTTP的url匹配:
訪問URL:http://localhsot:8000/detail/
- static/images/default.jpg -> http://localhsot:8000/detail/static/images/default.jpg
- /static/images/default.jpg -> http://localhsot:8000/static/images/default.jpg
爬蟲的一點(diǎn)總結(jié)
1.請求鏈接
分析html拿到需要的數(shù)據(jù)
2.數(shù)據(jù)匹配和提取
插入數(shù)據(jù)
3.數(shù)據(jù)的整理--去重
處理網(wǎng)絡(luò)Bug
4.提高爬蟲效率--多線程問題
爬蟲框架淺談
Python開源的爬蟲框架Scrapy是一個快速,高層次的屏幕抓取和web抓取框架,用于抓取web站點(diǎn)并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測和自動化測試。
Scrapy主要包括了以下組件:
1.引擎(Scrapy)
用來處理整個系統(tǒng)的數(shù)據(jù)流處理, 觸發(fā)事務(wù)(框架核心)
調(diào)度器(Scheduler)
用來接受引擎發(fā)過來的請求, 壓入隊(duì)列中, 并在引擎再次請求的時候返回. 可以想像成一個URL(抓取網(wǎng)頁的網(wǎng)址或者說是鏈接)的優(yōu)先隊(duì)列, 由它來決定下一個要抓取的網(wǎng)址是什么, 同時去除重復(fù)的網(wǎng)址
2.下載器(Downloader)
用于下載網(wǎng)頁內(nèi)容, 并將網(wǎng)頁內(nèi)容返回給蜘蛛(Scrapy下載器是建立在twisted這個高效的異步模型上的)
3.爬蟲(Spiders)
爬蟲是主要干活的, 用于從特定的網(wǎng)頁中提取自己需要的信息, 即所謂的實(shí)體(Item)。用戶也可以從中提取出鏈接,讓Scrapy繼續(xù)抓取下一個頁面
4.項(xiàng)目管道(Pipeline)
負(fù)責(zé)處理爬蟲從網(wǎng)頁中抽取的實(shí)體,主要的功能是持久化實(shí)體、驗(yàn)證實(shí)體的有效性、清除不需要的信息。當(dāng)頁面被爬蟲解析后,將被發(fā)送到項(xiàng)目管道,并經(jīng)過幾個特定的次序處理數(shù)據(jù)。
5.下載器中間件(Downloader Middlewares)
位于Scrapy引擎和下載器之間的框架,主要是處理Scrapy引擎與下載器之間的請求及響應(yīng)。
6.爬蟲中間件(Spider Middlewares)
介于Scrapy引擎和爬蟲之間的框架,主要工作是處理蜘蛛的響應(yīng)輸入和請求輸出。
7.調(diào)度中間件(Scheduler Middewares)
介于Scrapy引擎和調(diào)度之間的中間件,從Scrapy引擎發(fā)送到調(diào)度的請求和響應(yīng)。
Scrapy運(yùn)行流程大概如下:
1.引擎從調(diào)度器中取出一個鏈接(URL)用于接下來的抓取
2.引擎把URL封裝成一個請求(Request)傳給下載器
3.下載器把資源下載下來,并封裝成應(yīng)答包(Response)
4.爬蟲解析Response
5.解析出實(shí)體(Item),則交給實(shí)體管道進(jìn)行進(jìn)一步的處理
6.解析出的是鏈接(URL),則把URL交給調(diào)度器等待抓取