個人博客python
❶ 如何用django開發一個簡易個人Blog-python
1.網站首頁展示已發布的博客記錄,包括名稱、摘要信息、發布日期、閱讀量及評論數。
2.首頁文章列表可按照分類篩選。
3.點擊標題或閱讀全文鏈接,進入博客閱讀頁面,展示文章標題、內容及評論內容。
博客後台管理部分:(後台套用了一個叫做ACE的後台模板,改造成了django形式的)
1.管理員登錄功能
2.分頁展示文章列表,可查看、編輯、刪除選中文章,並支持批量刪除功能。
3.增加新文章功能,利用網路ueEditor富文本編輯器,支持代碼高亮顯示功能。
4.支持分類的增、刪、改、查功能。
下面是幾張截圖:
首頁文章顯示:
開發環境及軟體版本:
開發是在windows 7,利用sublime text2編輯器。
採用python2.7.3+django1.7.0+mysql
前端採用bootstrap和一些成熟的jquery插件。
開發過程:
1.創建項目及app,規劃項目結構。
2.設計數據模型,即資料庫表及表結構。
3.設計公共展示部分樣式,及後台數據與模板視圖的展示。
4.改造ACE後台模板,添加文章管理、類別管理功能及登錄驗證功能。
5.部署到CentOS6.5,部署方式:nginx+uwsgi+django1.6+mysql
❷ 用python 寫一個個人博客要多久
那得會python寫邏輯
然後得有個django框架
然後博客的數據得存在資料庫吧,可以使用django自帶的資料庫。
好的後段准備好了,現在准備前段。
html寫個網站,查詢功能,登錄功能,評價功能。
然後css寫個布局,讓看上去好看點。
ok基本差不多了。
❸ 怎麼利用python爬取csdn博客訪問量例子
一、網址分析
進入自己的博客頁面,網址為:http://blog.csdn.net/xingjiarong 網址還是非常清晰的就是csdn的網址+個人csdn登錄賬號,我們來看一下下一頁的網址。
看到第二頁的地址為:http://blog.csdn.net/xingjiarong/article/list/2
後邊的數字表示現在正處於第幾頁,再用其他的頁面驗證一下,確實是這樣的,那麼第一頁為什麼不是http://blog.csdn.net
/xingjiarong/article/list/1呢,那麼我們在瀏覽器中輸入http://blog.csdn.net/xingjiarong
/article/list/1試試,哎,果然是第一頁啊,其實第一頁是被重定向了,http://blog.csdn.net/xingjiarong
被重定向到http://blog.csdn.net/xingjiarong/article/list/1,所以兩個網址都能訪問第一頁,那麼現在規
律就非常明顯了:
http://blog.csdn.net/xingjiarong/article/list/ + 頁號
二、如何獲取標題
右鍵查看網頁的源代碼,我們看到可以找到這樣一段代碼:
我們可以看到標題都是在標簽
<span class="link_title"><a href="/xingjiarong/article/details/50651235">
所以我們可以使用下面的正則表達式來匹配標題:
<span class="link_title"><a href=".*?">(.*?)</a></span>
三、如何獲取訪問量
拿到了標題之後,就要獲得對應的訪問量了,經過對源碼的分析,我看到訪問量的結構都是這樣的:
<span class="link_view" title="閱讀次數"> <a href="/xingjiarong/article/details/50651235" title="閱讀次數">閱讀</a>(1140)</span>
括弧中的數字即為訪問量,我們可以用下面的正則表達式來匹配:
<span class="link_view".*?><a href=".*?" title="閱讀次數">閱讀</a>\((.*?)\)</span>
四、如何判斷是否為尾頁
接下來我們要判斷當前頁是否為最後一頁,否則我們就不能判斷什麼時候結束了,我找到了源碼中『尾頁'的標簽,發現是下面的結構:
<a href="/xingjiarong/article/list/2">下一頁</a> <a href="/xingjiarong/article/list/7">尾頁</a>
所以我們可以用下面的正則表達式來匹配,如果匹配成功就說明當前頁不是最後一頁,否則當前頁就是最後一頁。
<a href=".*?">尾頁</a>
五、編程實現
下面是完整的代碼實現:
#!usr/bin/python
# -*- coding: utf-8 -*-
'''
Created on 2016年2月13日
@author: xingjiarong
使用python爬取csdn個人博客的訪問量,主要用來練手
'''
import urllib2
import re
#當前的博客列表頁號
page_num = 1
#不是最後列表的一頁
notLast = 1
account = str(raw_input('輸入csdn的登錄賬號:'))
while notLast:
#首頁地址
baseUrl = 'http://blog.csdn.net/'+account
#連接頁號,組成爬取的頁面網址
myUrl = baseUrl+'/article/list/'+str(page_num)
#偽裝成瀏覽器訪問,直接訪問的話csdn會拒絕
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent':user_agent}
#構造請求
req = urllib2.Request(myUrl,headers=headers)
#訪問頁面
myResponse = urllib2.urlopen(req)
myPage = myResponse.read()
#在頁面中查找是否存在『尾頁'這一個標簽來判斷是否為最後一頁
notLast = re.findall('<a href=".*?">尾頁</a>',myPage,re.S)
print '-----------------------------第%d頁---------------------------------' % (page_num,)
#利用正則表達式來獲取博客的標題
title = re.findall('<span class="link_title"><a href=".*?">(.*?)</a></span>',myPage,re.S)
titleList=[]
for items in title:
titleList.append(str(items).lstrip().rstrip())
#利用正則表達式獲取博客的訪問量
view = re.findall('<span class="link_view".*?><a href=".*?" title="閱讀次數">閱讀</a>\((.*?)\)</span>',myPage,re.S)
viewList=[]
for items in view:
viewList.append(str(items).lstrip().rstrip())
#將結果輸出
for n in range(len(titleList)):
print '訪問量:%s 標題:%s' % (viewList[n].zfill(4),titleList[n])
#頁號加1
page_num = page_num + 1
❹ python中xrange和range的異同 CiNiao's blog
range返回的是一個包含所有元素的列表,xrange返回的是一個生成器,生成器是一個可迭代對象,在對生成器進行迭代時,元素是逐個被創建的。一般來看,在對大序列進行迭代的時候,因為xrange的特性,所以它會比較節約內存。
我們來仔細看看這兩者的不同:
>>> Range = range(10)
>>> xRange = xrange(10)
>>> type(Range)
>>> type(xRange)
這里就是很明顯的類型上的不同了,range直接生成一個列表,xrange生成的是一個xrange對象
另外一個很明顯的區別在與xrange不支持列表切片
>>> xRange[:1]
Traceback (most recent call last):
File "", line 1, in
xRange[:1]
TypeError: sequence index must be integer, not 'slice'
在其它場合,我覺得xrange完全可以取代range,這樣你可以無需擔心列表長度的問題。
另外,xange也和普通的生成器略有不同,對於同一個xrange對象,對它進行多次迭代,每次都會從頭開始,這里我自己也試了一下
首先寫個常規生成器
>>> def test(x):
for y in x:
yield y
>>> t = test(range(10))
>>> t.next()
0
>>> t.next()
1
>>> t.next()
2
>>>list(t)
[3, 4, 5, 6, 7, 8, 9]
可以看到元素被生成出來之後就從生成器中剔除了,但是xrange有所不同
>>> xRange = xrange(10)
>>> for x in xRange:
print x
break
0
>>> for x in xRange:
print x
break
0
迭代兩次,每次都是從第一個元素開始....
❺ linux下怎麼用python搭建自己的博客
運行python終端的話 直接輸入python
也可以加參數運行,這就比windows下面方便一些。
你的py程序可以不以「.py」結尾,linux系統不是通過擴展名來判斷文件格式的。py腳本對於linux系統來說就是文本文件。
編寫程序的時候有一點和windows下不一樣。第一行要加上「#! /usr/python"這樣一行注釋,雖然是注釋,但是linux系統的終端會解讀它並識別出來是個python腳本。然後這個文件要加上可運行許可權,用命令「chmod +x 文件名",這樣這個文件就可以被運行了。
然後在linux終端中直接輸入"./程序名"即可運行,終端會自動識別出來是個python程序並用python解釋器來運行。".」指的是當前目錄,linux默認設置的是要運行當前目錄的程序必須重新指定以下目錄,所以要加上"./"。
如果要用python3的話,python 3 在大部分發行版裡面叫做"python3"。
在Archlinux裡面「python"指的是第三代,而」python2」表示的是python第二代。
❻ Python 有哪些好的學習資料或者博客
1、無開發經驗,初學python
如果你不會其他語言,python是你的第一門語言:
A Byte of Python (簡明python教程,這個有中文版簡明 Python 教程)是非常好的入門教程。
Learn Python the Hard Way (Zed Shaw的免費教程,個人強烈推薦)
Python, Django and Flask教程: Real Python (收費,需購買)
short 5 minute video 解釋了為什麼你的出發點應該是要完成什麼項目,或者解決什麼問題,而不是為了學一門語言而去學一門語言。
Dive into Python 3 是一本開源的python教程,提供HTML和PDF版。
Code Academy 有一個為純新手准備的 Python track 。
Introction to Programming with Python 介紹了基本語法和控制結構等,提供了大量代碼示例。
O'Reilly 的書 Think Python: How to Think Like a Computer Scientist 是非常好的入門教材。
Python Practice Book 是一本python練習的書,幫你掌握python基本語法。
想通過做實際項目來學編程?看看這個 this list of 5 programming project for Python beginners(5個適合python初學者的編程項目)。
Reddit的創造者之一寫了一個教程,如何用python構建一個博客網站(use Python to build a blog.),使非常好的web編程入門。
The fullstack python的作者寫了一篇關於如何學習python的文章learning Python 。
2、有開發經驗 ,初學Python
Learn Python in y minutes ,讓你在幾分鍾內快速上手,有個大概了解。
Python for you and me , python的語法,語言的主要結構等,還包含來Flask Web App的教程。
The Hitchhiker』s Guide to Python
How to Develop Quality Python Code ,如何開發高質量的python代碼