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 等 的...