python爬蟲學習第一課之爬蟲基本原理掌握

2021-09-19 04:57:29 字數 1711 閱讀 5446

1.預備知識:

1.1http原理:

1.1.1url

1.1.2html和http

1.1.3request

request由本地向服務端發出獲取網路資源。request可以分為四部分內容:request method,request url、request headers、request body,即請求方式、請求鏈結、請求頭、請求體。

request method常見的有兩種:get和post

request url:***

request headers:用於新增請求是的附加資訊,比較重要的有:cookie, referer, user-agent

cookies 的主要功能就是維持當前訪問會話,例如我們輸入使用者名稱密碼登入了某個**,登入成功之後伺服器會用 session 儲存我們的登入狀態資訊,後面我們每次重新整理或請求該站點的其他頁面時會發現都是保持著登入狀態的,在這裡就是 cookies 的功勞,cookies 裡有資訊標識了我們所對應的伺服器的 session 會話,每次瀏覽器在請求該站點的頁面時都會在請求頭中加上 cookies 並將其傳送給伺服器,伺服器通過 cookies 識別出是我們自己,並且查出當前狀態是登入的狀態,所以返回的結果就是登入之後才能看到的網頁內容.

referer,此內容用來標識這個請求是從哪個頁面發過來的,伺服器可以拿到這一資訊並做相應的處理,如做**統計、做防盜煉處理等。

user-agent,簡稱 ua,它是乙個特殊字串頭,使得伺服器能夠識別客戶使用的作業系統及版本、瀏覽器及版本等資訊。在做爬蟲時加上此資訊可以偽裝為瀏覽器,如果不加很可能會被識別出為爬蟲

request body:

請求體,一般承載的內容是 post 請求中的 form data,即表單資料,而對於 get 請求 request body 則為空。

1.2爬蟲基本原理

爬蟲,即網路爬蟲,我們可以把網際網路就比作一張大網,而爬蟲便是在網上爬行的蜘蛛,我們可以把網的節點比做乙個個網頁,爬蟲爬到這就相當於訪問了該頁面獲取了其資訊,節點間的連線可以比做網頁與網頁之間的鏈結關係,這樣蜘蛛通過乙個節點後可以順著節點連線繼續爬行到達下乙個節點,即通過乙個網頁繼續獲取後續的網頁,這樣整個網的節點便可以被蜘蛛全部爬行到,這樣**的資料就可以被抓取下來了。

爬蟲主體上可以分為三部分:1.獲取網頁 2.提取資訊 3.儲存資訊

1.2.1

爬蟲首先要做的工作就是獲取網頁,在這裡獲取網頁即獲取網頁的源**,源**裡面必然包含了網頁的部分有用的資訊,所以只要把源**獲取下來了,就可以從中提取我們想要的資訊了。具體操作上可以使用python中的一些庫如urllib、requests幫助我們實現http操作,得到reponse後再解析body中的資訊

1.2.2

我們在第一步獲取了網頁源**之後,接下來的工作就是分析網頁源**,從中提取我們想要的資料,首先最通用的方法便是採用正規表示式提取,這是乙個萬能的方法,但是在構造正規表示式的時候比較複雜且容易出錯。

另外由於網頁的結構是有一定規則的,所以還有一些根據網頁節點屬性、css 選擇器或 xpath 來提取網頁資訊的庫,如 beautifulsoup、pyquery、lxml 等,使用這些庫可以高效快速地從中提取網頁資訊,如節點的屬性、文字值等內容。

1.2.3

提取資訊之後我們一般會將提取到的資料儲存到某處以便後續資料處理使用。儲存形式有多種多樣,如可以簡單儲存為 txt 文字或 json 文字,也可以儲存到資料庫,如 mysql、mongodb 等,也可儲存至遠端伺服器,如借助 sftp 進行操作等。

python學習第一課

1.單行注釋 2.或 多行注釋運算子的型別運算子的優先順序運算子tips 參考變數型別 算術運算子 print 1 1 2,加 print 2 1 1,減 print 3 4 12,乘 print 3 4 0.75,除 print 3 4 0,整除 地板除 print 3 4 3,取餘 print ...

Python爬蟲筆記 爬蟲基礎第一課

0.獲取資料 爬蟲程式會根據我們提供的 向伺服器發起請求,然後返回資料。1.解析資料 爬蟲程式會把伺服器返回的資料解析成我們能讀懂的格式。2.提取資料 爬蟲程式再從中提取出我們需要的資料。3.儲存資料 爬蟲程式把這些有用的資料儲存起來。屬性 作用response.status code 檢查請求是否...

python菜鳥學習第一課

系統 win7 x64 環境 activepython 3.3.2.0 win64 x64 1.首先寫乙個比較簡單程式 print hello,world syntaxerror invalid syntax 未出現 hello,world print在python3.0中是函式 2.演算法是什麼 ...