網路爬蟲學習前置知識

2021-09-26 06:26:53 字數 2163 閱讀 6033

scrapy爬蟲的使用

步驟建立乙個工程和spider模版

編寫spider

編寫item pipeline模版

進行優化策略的配置

scrapy爬蟲的資料型別:

request

包含6個屬性和方法

.url request對應的請求url位址

.method 對應的請求方法,『get』 『post』等

.headers 字典型別風格的請求頭

.body 請求內容主題,字串型別

.meta 使用者新增的擴充套件資訊,在scrapy內部模組間傳遞資訊使用

.copy() 複製該請求

response

.url response 對應的url位址

.status http狀態碼,預設是200

.headers response 對應的頭部資訊

.body response 對應的內部資訊,字串型別

.flag 一組標記

.request 產生response 型別對應的request物件

.copy() 複製該響應

item

是從html頁面提取的資訊內容

由spider生成,由item pipeline 處理

類字典型別

提取網路相關資訊後,將生成鍵值對

提取資訊的方法

beautiful soup

lxml

rexpath selector

css selector

使用格式:

.css (『a::attr (href)』). extract() (『標籤名稱::attr(標籤屬性)』 r = request.get(url) 構建向伺服器請求資源的request物件 返回乙個包含伺服器的response物件,包含從伺服器返回的所有相關資源

request.get(url, params = none, **kwargs)

url:擬獲取頁面的url鏈結

params:utl中的額外引數,字典或者位元組流方式

**kwargs:12個控制訪問的引數

requests為response物件,包含爬蟲返回的全部內容

response 物件的屬性

r.status_code

http請求的返回狀態,200表示鏈結成功,404表示失敗

r.text

http 響應內容的字串形式,即,url對應的頁面內容

r.encoding

從http headers中猜測的響應內容編碼方式

如果header中不存在charset,則認為編碼為iso-8859-1,但這種編碼不能解析中文

r.content

http響應內容的二進位制形式

理解requests庫的異常

requests.connectionerror

網路鏈結錯誤異常,如dns查詢失敗、拒絕鏈結等

http錯誤處理

r.raise_for_status() 判斷返回的狀態型別是不是200

requests.urlrequired

url缺失異常

requests.toomanyredirects

超過最大重定向次數,產生重定向異常

requests.connecttimeout

連線遠端伺服器超時異常

requests.timeout

請求url超時,產生超時異常

requests 庫的7個主要方法

requests.requests()

構造乙個請求,支撐以下各方法的基礎方法

requests.get()

獲取html網頁的主要方法,對應http的get

requests.head()

獲取html網頁頭資訊的方法,對應http的head

requests.post()

向html網頁提交post請求的方法,對應http的post

requests.put()

向html網頁提交put請求的方法,對應http的put

requests.patch()

向html網頁提交區域性修改請求,對應http的patch

requests.delete()

向html頁面提交刪除請求,對應http的delete

Python網路爬蟲基礎知識學習

對python 有一些簡單了解的朋友都知識 python 程式語言有個很強大的功能,那就是 python網路爬蟲 一提到python 就會想到相關的 python 爬蟲和scrapy 等等,今天就來簡單認識學習 python 爬蟲的基礎知識,有了一定的相關爬蟲知識,以後學習 scrapy urlli...

Django學習筆記 1 前置知識

django是乙個快速開發的web框架,乙個遵循mvc設計模型的框架。通過命令列的方式python manage.py runserver ip port也可以直接在pycharm中直接執行。manage.py 以後和專案互動基本上都是基於這個檔案。settings.py 本專案的設定項,以後所有和...

antd pro前置知識

參考 dva 首先是乙個基於 redux 和 redux saga 的資料流方案,然後為了簡化開發體驗,dva 還額外內建了 react router 和 fetch,所以也可以理解為乙個輕量級的應用框架。dva 是基於現有應用架構 redux react router redux saga 等 的...