cookie是指**為了鑑別使用者身份,進行繪畫跟蹤而儲存在客戶端本地的資料。
本來的含義是指有始有終的一系列動作,而在web中,
session物件用來在伺服器儲存特定使用者會話所需要的屬性及資訊。
cookie和session他們不屬於http協議範圍,由於http協議無法保持狀態,
但實際情況,我們有需壓保持一些資訊,
作為下次請求的條件,所以就產生了cookie和session。
由伺服器產生,當瀏覽器第一次登陸,傳送請求到伺服器,
伺服器返回資料,同時生成乙個cookie返回給客戶端,客戶端將這個cookie儲存下來
當瀏覽器再次訪問瀏覽器會自動帶上cookie資訊,這樣伺服器就能通過cookie判斷是哪個使用者在操作。
①、不安全
②、cookie本身最大支援4096(4kb)----儲存大小受限制
正是因為cookie的缺陷,所以產生了另一種會話機制 ----- session
伺服器儲存session,基於http協議的無狀態特徵,
伺服器就不知道這個訪問的是誰,為了解決這個問題,
cookie就起到了橋的作用。cookie在使用的時候,
將乙個叫做sessionid的字段放到cookie中,
將來伺服器可以通過這個id欄位來查詢到地上的那個使用者的session。
當使用者第一次登入時建立(session開始),到session有效期結束(30min)。
不失效,原因,session失效是由生命週期決定的。
name:cookie名稱,一旦建立,不可更改。
value:cookie的值。
domain:是cookie可以訪問**網域名稱。
maxage:cookie的失效時間,負數代表永不失效。
path:cookie使用路徑
http欄位:cookie的httponly,若此屬性為true,則只有http頭中會帶有cookie
secrue:該cookie是否僅被使用安全傳輸協議
size:cookie的大小
持久化:將記憶體中的資料儲存到硬碟(檔案中,資料庫)上的過程。
序列化:將物件儲存到硬碟上。
會話cookie:儲存在記憶體中的cookie,瀏覽器關閉,cookie失效。
持久cookie:儲存在硬碟上的cookie,瀏覽器關閉,cookie不失效。
特點:資料以行為單位,每乙個資料表示乙個實體,每一行資料的屬性都是一樣的。
舉例:關係型資料庫中的表就是結構化資料
處理方法:sql
特點、結構化資料的另一種形式,他並不符合關係型資料的特點,不能用關係型模型來描述,
但是這種資料報含相關標記,有用來分割語義元素及欄位進行分層的描述,
因此也被稱為自描述結構
舉例:xml,html,json
處理方法:正則,xpath,jsonpath,css選擇器。
json是js語言中用來用【字串格式】來儲存物件和陣列的一種資料結構。
js的陣列:var array = [『aaa』,『bb』,『vv』]--------和python列表對應
js的物件:var obj = ----和python字典對應
name = obj.name
json模組:
對json字串的操作;
json.loads(json_str)------->python的list火車dict
json.dumps(python的list或者dict) ----->json_str
…對json檔案的操作:
json.load(fp)----->從json檔案中讀出json資料,返回乙個python的list或者dict。
json.dump(python的list或者dict,fp)---->python的list或者dict儲存到fp所對應的檔案中。
json作為資料格式進行傳輸,具有較高的效率
json不像xml那樣具有嚴格的閉合標籤,所以json作為資料傳輸的時候,
他的資料有效佔比(有效資料和總資料的比)比xml高很多。
在相同流量下,json比xml作為資料傳輸,傳輸的資料更多。
(1)匹配邊界:
^-----------行首
$-----------行尾
(2)重複次數
?------------0次或1次
*------------->=0
±----------->=1
—>=n
—>=n,<=m
----n次
(3)各種字元的表示
----匹配括號中乙個字元,單字元
[abc]–匹配a或者b或者c
[a-z0-9a-z]
\d—數字
\w—數字字母下劃線
\s—空白字元:換行符、製表符、空格
\b—單詞邊界
.----除換行符以外的任意字元。
python中的re模組是用來做正則處理的
#導包import re
#將正規表示式編譯成乙個pattern物件
pattern = re.complie(
r』正規表示式』,
『匹配模式』
)r標識元字元。
#3、用pattern物件來使用相應的方法來匹配內容。
1.match方法:預設從頭開始,只匹配一次,返回乙個match物件。
pattern.match(
『匹配的目標字串』,
start,匹配開始的位置----預設,start=0
end,匹配結束的位置----預設,end=-1
)----->match物件
match物件的屬性:
match.group()--------獲取匹配的內容
match.span()---------匹配的範圍
match.start()----------開始的位置
match.end()-----------結束位置
這些方法都可以帶乙個引數0,但是不能寫1,1來表示取分組。
match.group(0)—獲取匹配內容。
match.span(0)–匹配的範圍
match.start(0)—開始位置
match.end(0)—結束位置
match.groups()—將所有分組的內容,按順序放到乙個元組中返回
2、search方法:從任意位置開始匹配,只匹配一次,返回乙個match物件
pattern.search(
『匹配的目標字串』
start,匹配開始的位置—預設,end = -1
end,匹配結束的位置–預設,end = -1
)—>match物件
3、findall方法:全文匹配,匹配多次,將每次匹配到的結果放到list中返回。
pattern.findall(
'匹配的目標字串',
start,匹配開始的位置--預設,start = 0
end,匹配結束的位置--預設,end = -1
)--->list
4、finditer方法:全文匹配,匹配多次,返回乙個迭代器。pattern.finditer(
'匹配的目標字串',
start,匹配開始的位置--預設,start = 0
end,匹配結束的位置--預設,end = -1
)--->list
finditer主要用匹配內容比較多的情況下。
5、split:切分,按照正則所表示內容進行切分字串,返回切分後的每個子串pattern.split(
'要切分的字串',
'切分字數',預設是全部分。
)--->list
6、sub方法:用指定字串,替換正則表達所匹配到的內容。pattern.sub(
repl,#替換成什麼
content,替換什麼
count,替換次數,預設替換所有
)--->替換後的字串。
repl替換內容可以使函式:
函式要求:
1.函式必須有引數,引數就是正則匹配目標字串所得到的每個match物件。
2、這個函式必須要有返回值,返回值必須是字串,這個字串將來就作為替換的內容。
#zhangsan:3000,lisi:4000
#漲工資每個人漲1000
content = 『zhangsan:3000,lisi:4000』
p = re.compile(r』\d+』)
result = p.sub(add,)
分組在正規表示式中使用()來表示的,乙個括號就是乙個分組。
分組的作用:
(1)篩選特定內容
(2)可以在同乙個表示式中應用前面的分組:
\1引用第一分組
(3)findall配合分組
import re
content = 『
』p = re.compile(r』<(html)><(h1)>(.*)』)
# print(p.search(content).group())
print(p.findall(content))#[(『html』, 『h1』, 『正規表示式』)]
(1)貪婪和非貪婪的卻別在於匹配內容的多少。
(2)貪婪使用*來控制匹配次數的。正則預設是貪婪。
(3)非貪婪使用?來控制的。
(4)在表示數量控制元字元後面加乙個?,此時就表示這個數量控制符取最小值,也就是非貪婪。
re.s ----.可以匹配換行符
re.i----忽略大小寫。
爬蟲基礎 3
入門小練習 附註 moocpython網路爬蟲與資訊提取 coding utf 8 import requests from bs4 import beautifulsoup def gethtmltext url try req requests.get url req.raise for sta...
python爬蟲高階 SVG對映反爬蟲
破解svg加密的字元,得到正確的字元 練習平台 一 svg的具體表現 二 css檔案 三 svg 四 舉例詳解 這裡選擇圖一為例 已知 類名 vhkjj4 座標 316px 141px 取正整數則為 316,141 可以自行選擇其他類名進行嘗試 usr bin env python coding u...
Python爬蟲(入門 高階)
講解方式 針對每乙個 或專題進行詳細深入的專項講解 課程亮點 具體的 資料抓取的案例和常見爬蟲問題的專項解答 課程內容 python爬蟲熱點專案,由多個 資料抓取的案例和常見問題專項解答組成 適用人群 1 希望未來從事爬蟲或反爬蟲方向工作的程式設計師。2 正在從事爬蟲工作,但對目前職業有進一步提公升...