python爬蟲基本流程 Python爬蟲流程

2021-10-10 02:27:54 字數 1987 閱讀 3003

python爬蟲流程

主要分為三個部分 (1)獲取網頁-------->(2)解析網頁(獲取資料)--------->儲存資料

三個流程的技術實現

1.獲取網頁

-獲取網頁的技術基礎:urllib、requests、selenium

-獲取網頁的高階技術:多執行緒抓取、登入抓取、突破ip限制和伺服器抓取

2.解析網頁

-解析網頁的技術基礎:re正規表示式、beautifulsoup和xml

-解析網頁的高階技術:解決中文亂碼問題

3.儲存資料

-儲存資料的基本技術:存入txt檔案和存入csv檔案

-儲存資料的高階技術:儲存mysql、mongodb資料庫中

搭建python爬蟲的平台

python的安裝

整合環境anaconda的安裝

使用pip工具安裝第三方庫

urllib.request

urllib中,request這個模組主要負責構造和發起網路請求,並在其中加入headers,proxy等。

發起get請求

主要使用urlopen()方法發起請求

from urllib import request

resp = request.urlopen('') type(resp)

print(resp.read().decode()) 資料為二進位制資料需轉碼

發起post請求

urlopen()預設的訪問方式為get,當在urlopen()方法中傳入data引數時,則會發起pose請求

注意:傳入的data資料需要為bytes格式

設定timeout引數還可以設定超時時間,如果請求時間超出,那麼會丟擲異常

from urllib import request

resp = request.urlopen('', data=b'word=hello', timeout=10)

print(resp.read().decode())

新增headers

通過urllib發起的請求會有預設的乙個headers:"user-agent":python-urllib/3.6",指明請求是由urllib傳送的。

**所以遇到一些驗證user-agent的 **時,我們需要自定義headers,而這需要借助於urllib.request中的request物件。

from urllib import request

url = '/get'

headers =

**需要使用url和headers生成乙個request物件,然後將其傳入urlopen方法中

req = request.request(url, headers=headers)

resp = request.urlopen(req)

print(resp.read().decode())

request物件

如上所示,urlopen()方法中不止可以傳入字串格式的url,也可以傳入乙個request物件來擴充套件功能。request物件如下所示:

class urllib.request.request(url, data=none, headers={}, origin_req_host=none, unverifiable=false, method=none)

構造request物件必須傳入url引數, data資料和headers都是可選的。

request方法可以使用method引數來自由選擇請求的方法,如put, delete等等,預設為get方法。

新增cookie

為了在請求時能帶上cookie資訊,我們需要重新構造乙個opener

使用request.build_opener方法進行構造opener,將我們想要傳遞的cookie配置到opener中,然後使用這個opener的open方法來發起請求。

Python爬蟲基本流程

爬蟲定義 爬蟲基本流程 發起請求 通過url向伺服器傳送requests請求,請求可以包含額外的header資訊。2.獲取響應內容 解析內容 如果是html 則可以使用網頁解析器進行解析 如果是json資料則可以轉換成json物件進行解析 如果是二進位制資料則可以儲存到檔案進行進一步的處理。儲存資料...

python爬蟲 (2)爬蟲基本流程

網路爬蟲 又被稱為網頁蜘蛛,網路機械人,在foaf社群中間,更經常的稱為網頁追逐者 是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼。另外一些不常使用的名字還有螞蟻 自動索引 模擬程式或者蠕蟲。其實通俗的講就是通過程式去獲取web頁面上自己想要的資料,也就是自動抓取資料 模擬瀏覽器開啟...

爬蟲學習 爬蟲基本流程

標籤 空格分隔 資料探勘 爬蟲 1 發起請求 2 獲取相應內容 3 解析網路內容 4 儲存資料 結構化儲存 user server request server user response 1 請求方式 get,post,head,put,delete 2 get和post的區別 請求的引數包含的部...