Python掃瞄器 爬蟲基礎

2022-01-23 23:32:35 字數 2824 閱讀 3905

1.1、基礎原理

解析html資料

解析json資料

解析二進位制資料

4、儲存資料(資料庫、檔案)

1.2、發起http請求-request

常用的請求方法:get,post

其他請求方法:head,put,delete,opthons

uri通常由三部分組成:

①訪問資源的命名機制;

②存放資源的主機名;

③資源自身 的名稱,由路徑表示。

如下面的uri:

我們可以這樣解釋它:

①這是乙個可以通過http協議訪問的資源,

②位於主機 www.webmonkey.com.cn上,

③通過路徑「/html/html40」訪問。

user-agent:請求頭中如果沒有user-agent客戶端配置,服務端可能將你當做乙個非法使用者

host : 主機頭

cookies:cookie用來儲存登入資訊

get方式,請求體沒有內容

post方式,請求體是format data

1.3、獲取響應內容-response
200:代表成功

301:代表跳轉

404:檔案不存在

403:許可權

502:伺服器錯誤

set-cookie:告訴瀏覽器,把cookie儲存下來
最主要的部分,包含了請求資源的內容如網頁html,、二進位制資料等

1.4、練手庫-urllib

import urllib.request

response = urllib.request.urlopen('')

print(response.read())

變數html包含html格式的網頁資料。

模擬web瀏覽器

web瀏覽器把瀏覽器名稱、版本與請求一起傳送,這稱為使用者**。python可以使用下面的**模仿這種方式。user-agent字串包含web瀏覽器的名稱和版本號:

import urllib.request

headers = {}

headers['user-agent'] = "mozilla/5.0 (x11; ubuntu; linux i686; rv:48.0) gecko/20100101 firefox/48.0"

req = urllib.request.request('', headers = headers)

html = urllib.request.urlopen(req)

print(html.read())

提交資料-get

與get請求一起傳遞的引數是通過附加到url末尾的查詢字串完成的,因此新增引數不需要任何特殊函式或類,需要做的事情就是確保查詢字串正確編碼和格式化。

建立包含在查詢字串中的鍵值對,可以建立乙個字典物件,然後使用urllib.parse模組中包含的urllib的urlencode()函式對該物件進行編碼和格式化。

import urllib.request   

import urllib.parse

url = ""

params =

query_string = urllib.parse.urlencode( params )

url = url + "?" + query_string

with urllib.request.urlopen( url ) as response:

response_text = response.read()

print( response_text )

提交資料-post

建立乙個字典來儲存post引數的鍵值對,然後使用urlencode()進行格式化。格式化字串編碼為位元組並指定所需的字元編碼 。然後使用urlopen()正常開啟請求,新增資料作為額外的引數,將請求型別更改為post(預設為get) ,其中3個引數會附加到請求正文

import urllib.request

import urllib.parse

url = ""

params =

query_string = urllib.parse.urlencode( params )

data = query_string.encode("ascii")

with urllib.request.urlopen(url,data) as response:

response_text = response.read()

print(response_text)

遇到的問題-ssl需要驗證

urllib.error.urlerror:
解決方案

import ssl

import urllib.request

context = ssl._create_unverified_context()

html = urllib.request.urlopen('', context=context)

print(html.read().decode('utf-8'))

掃瞄器詳解

一 掃瞄器的定義 掃瞄器是一種獲取影象的裝置,並將資訊轉為電腦可以顯示 編輯 儲存和輸出的數字格式。即可以完成以下工作 在檔案中插隊圖和 將文字識別,免去打字 將傳真檔案掃到庫中存檔 在多 中加入影象 在報刊中加入有效表達主題。二 掃瞄器的工作原理 將光線照到待掃瞄的稿件上,光線反向回平後再由乙個稱...

Python打造漏洞掃瞄器 10

這是掃瞄器的最後一章,主要說說掃瞄器的使用方式以及對未來的展望。這個掃瞄器是python 2.7寫的,開發在windows平台上,測試在linux上 實驗樓的實驗平台 經過測試,在這兩個系統上都能夠執行。另外,只需要python安裝兩個庫就可以。在pip上的安裝指令 pip install requ...

Python指令碼 埠掃瞄器

乙個用python寫的簡單的埠掃瞄器,python環境為 3.7.0,windows系統 掃瞄給定主機是否開放了指定的埠tcp連線掃瞄是利用tcp的三次握手來確定主機的埠是否開放。確定主機埠開放之後,給埠傳送訊息,接收埠返回的訊息,然後判斷該埠執行的服務。使用時,h 引數可以提供主機的網域名稱或者i...