python爬蟲 基礎鞏固

2022-05-02 10:45:09 字數 1894 閱讀 4299

網路爬蟲(又稱網路蜘蛛、網路機械人)就是模擬客戶端(瀏覽器)傳送網路請求(偽造請求),然後接收請求響應。一種按照一定的規則,自動地抓取網際網路資訊的程式。

所謂"模擬"就是去照著做,說白了,就是讓爬蟲得到跟瀏覽器一樣的響應。而且,只要瀏覽器能夠做的事情,原則上,爬蟲都能做。

補充一點:比如你爬了某魚平台的乙個主播,這個主播有一千萬人在看,其中很多是機械人,但你無法分辨哪些是真人哪些是機械人。因為瀏覽器也是獲得了這一千萬人,你也只能獲得到這一千萬人。

總結來說,客戶端怎麼樣的,爬蟲也是拿到這樣的。無法一下子就判斷出資料的真假。

資料從何而來

1.企業產生的

2.資料平台購買

3.**/機構公開的

4.爬取網路資料

爬蟲的分類

1.通用爬蟲:通常指搜尋引擎的爬蟲,它是搜尋引擎抓取系統的組成,大而全但資訊不精確

1.requests很好用,但個別難纏的**還是要用urllib

2.打碼平台可以對付12306驗證碼

3.網頁上找不到資料,可以把瀏覽器調成手機模式

python字串內容補充

字串的兩種表現形式:

1.bytes型別:二進位制。網上資料都是以二進位制的方式進行傳輸

2.str型別:unicode的呈現形式

ascii、gb2312、unicode等都是字符集

ascii編碼是1個位元組,unicode編碼通常是2個位元組。

utf-8是unicode的實現方式之一(utf-8是unicode的公升級版或子集),utf-8是一種變長的編碼,可以是1、2、3個位元組。

python3中bytes和str之間的型別轉換:

encode()編碼,預設utf-8;decode()解碼,預設也是utf-8

注意:編碼時若指定了其他編碼格式,那麼解碼時也必須是對應的編碼,否則就會發生解碼解出來不是原本的內容或是一堆看不懂的亂碼,甚至報錯!

http:超文字傳輸協議,預設埠80。所謂協議就是網際網路的約定,約定好怎麼傳資料,怎麼拿資料。

https:http+ssl(安全套接字層),預設埠443。傳送資料時進行加密,接受到資料時先解密再拿資料。

https更加安全,但效率比較慢。

備註:在django開發中是可以指定80埠的,但小於1000的埠號需要超級管理員許可權才能啟動。

url的形式

scheme://host[:port#]/path/.../[?query-string][#anchor]

scheme:協議,如:http、https、ftp

host:伺服器的ip或網域名稱

port:伺服器的埠(走預設協議的話是80/443)

path:訪問資源的路徑

query-string:引數,傳送給http伺服器的資料

anchor:錨(跳轉到網頁指定錨點位置)。在傳送請求時,加錨和不加錨是一樣的,不會發生再次請求。

請求頭user-agent:瀏覽器名稱,伺服器通過這個知道是哪個裝置來請求的

(小寫的q表示權重,表示更願意接受哪個)

cookie:伺服器可以通過cookie的某些欄位來判斷是否為爬蟲。(cookie儲存在本地端,有一定的上限;session儲存在伺服器端,只要伺服器資源夠,就是無上限)

靜態html和動態html

內容通過js(ajax)載入的,就是動態html頁面。靜態html頁面,就是本來就有內容。

瀏覽器渲染出來的頁面和爬蟲請求的頁面並不一樣。

爬蟲的工作流程

瀏覽器傳送http請求的過程

鞏固python基礎

1.變數由字母,數字,下劃線組成 2.不能用數字開頭 3.禁止使用關鍵字 and as assert break class continue def del elif else except ex ec finally for from global if import in is lambda ...

PHP 基礎 基礎鞏固

在做專案的時候,有時候寫乙個功能要去試兩三遍,自己也發現了,有些東西都是模模糊糊知道,原因都是基礎知識掌握的不夠紮實,趁平時有時間,把php的基礎知識又總結了一遍,相信以後寫專案少去不少麻煩.變數 變數的命名規範 變數名必須以 符號開頭,可以由下劃線或字母,漢字開頭,不能以數字或特殊符號開始命名 n...

html基礎鞏固

一 行標籤和 塊標籤和行內塊標籤 常見 行標籤 a span 可以多個標籤存在一行,不能直接設定行內標籤的高度 寬度 常見 塊標籤 p div h1 h6 form 獨佔一行,可以設定行內標籤的高度 寬度 常見 行內塊標籤 img,input,textarea 不僅可以對寬高屬性值生效,還可以多個標...