python爬蟲學習筆記1:requests庫及robots協議
The Website is the API
requests庫
requests庫的7個主要方法
requests.request
構造一個請求
requests.request(method,url,[**kwarges])
- method:請求方式(get,post,put,patch,head,delete,option)
- url:url連結
**kwarges:
- params[字典或位元組序列,作為引數增加到url中]
- data[字典,位元組序列或檔案物件,作為request的內容]
- json[json格式資料,作為request的內容],headers[字典,HTTP頭]
- cookies[字典或cookiejar,request中的cookie]
- auth[元組,支援http認證功能]
- files[字典,傳輸檔案]
- timeout[設定超時時間,以s為單位]
- proxies[字典型別,設定代理伺服器,可增加登入認證]
- allow_redirects[重定向開關,預設為True]
- stream[獲取內容立即下載開關,預設為True]
- verify[認證ssl證書開關,預設為True]
- cert[本地ssl證書路徑]
requests.get()
請求獲取url位置的資源
r=request.get(url,params,**kwargs)
requests.head()
請求獲取資源的頭部資訊
requests.head(url,**kwargs)
requests.post()
請求向url位置的資源後附加新的資料
requests.post(url,data,json,**kwargs)
requests.put()
請求向url位置儲存一個資源覆蓋原有的資源
requests.put(url,data,**kwargs)
requests.patch()
請求改變該資源的部分內容
requests.patch(url,data,**kwargs)
requests.delete()
請求刪除url位置儲存的資源
requests.delete(url,**kwargs)
requests請求返回的response物件
- 構造一個向伺服器請求資源的requests物件
- 返回一個包含伺服器資源的response物件
- r.status_code - http請求的返回狀態
- r.text - HTTP響應內容的字串形式
- r.encoding - 從HTTP header中猜測的響應內容編碼方式(如果http header中不存在charset,則認為編碼為ISO-8859-1)
- r.apparent_encoding - 從內容中分析出的響應內容的編碼方式(備選編碼方式)
- r.content - http響應內容的二進位制形式
requests庫的異常
- requests.ConectionError - 網路連線異常,如DNS查詢失敗、拒絕連線等
- requests.HTTPError - HTTP錯誤異常
- requests.URLRequired - URL缺失異常
- requests.TooManyRedirects - 超過最大重定向次數
- requests.ConnectTimeout - 連線遠端伺服器超時
- requests.Timeout - 請求url超時
- r.raise_for_status() - 如果不是200,產生requests.HTTPError
爬取網頁的通用程式碼框架
網路連線有風險,異常處理很重要
import requests
def getHTMLText(url):
try:
r = request.get(url,timeout=30)
r.raise_for_status() #如果狀態不是200,引發HTTPError異常
r.encoding = r.apparent_encoding
return r.text
except:
return "產生異常"
if __name__=="__main__":
url = "www.baidu.com"
print(getHTMLText(url))
網路爬蟲盜亦有道
爬蟲尺寸
- 爬取網頁 玩轉網頁(小)
- 爬取網站 爬取系列網站(scrapy)(中)
- 爬取全網(google,百度)(大)
問題
- 網路爬蟲的“騷擾”
- 網路爬蟲的法律風險
- 隱私洩露
爬蟲限制
來源審查:判斷user-agent進行限制
釋出公告:robots協議
robots協議
作用:網站告訴爬蟲那些網站可以抓取,哪些不行
形式:在網站的根目錄下放置robots.txt檔案
robots協議的基本語法:
User-agent:*(爬蟲名)
Disallow:/(不允許訪問的目錄)
robots協議的使用
網路爬蟲:自動或人工識別robots.txt,再進行內容爬取
約束性:robots協議是建議但非約束性,網路爬蟲可以不遵守,但存在法律風險。
相關推薦
python爬蟲學習筆記1:requests庫及robots協議
The Website is the API requests庫 requests庫的7個主要方法 requests.request 構造一個請求 requests.request(method,url,[**kwarges]) me
python爬蟲學習筆記二:Requests庫詳解及HTTP協議
Requests庫的安裝:https://mp.csdn.net/postedit/83715574 r=requests.get(url,params=None,**kwargs) 這個r是Response物件 url :擬獲取頁面的url連結 params:url中的額外引數
python爬蟲學習筆記五:Re庫的介紹和使用
Re庫介紹 Re庫是Python的標準庫,主要用於字串匹配。 呼叫方式: import re 正則表示式的表示型別 *raw string 型別(原生字串型別): re庫採用raw string型別表示正則表示式,表示為:r'text' 例如:r'[1-9]\d{5}
python爬蟲學習筆記四:BeautifulSoup庫對HTML文字進行操作
只要你提供的資訊是標籤,就可以很好的解析 怎麼使用BeautifulSoup庫? from bs4 import BeautifulSoup soup=BeautifulSoup('<p>data<p>','html.parser') 例如: import
python爬蟲學習實踐(一):requests庫和正則表示式之淘寶爬蟲實戰
使用requests庫是需要安裝的,requests庫相比urllib 庫來說更高階方便一點,同時與scrapy相比較還是不夠強大,本文主要介紹利用requests庫和正則表示式完成一項簡單的爬蟲小專案----淘寶商品爬蟲。有關於更多requests庫的使用方法請參考:官方文件第一步:我們先開啟淘寶網頁然後搜
python爬蟲學習筆記一:爬蟲學習概覽與Requests庫的安裝與使用
python網路爬蟲與資訊提取 學習目錄: the website is the API Requests:自動爬取HTML頁面自動網路請求提交 robots.txt:網路爬蟲排除標準 Beautiful Soup:解析HTML頁面 正則表示式詳解,提取頁面關鍵資訊Re
python爬蟲學習筆記6:正則表示式及re庫
正則表示式 語法 常用操作符 re庫 import re re庫的主要功能函式 re.search() re.search(pattern,string,f
python爬蟲學習筆記3:bs4及BeautifulSoup庫學習
Beuatiful Soup bs類對應一個HTML/xml文件的全部內容 from bs4 import BeautifulSoup import bs4 soup=BeautifulSoup('<p>data</p>','ht
【Python爬蟲學習筆記2】urllib庫的基本使用
代理服務 cor proc 技術 origin car windows tpc -c urllib庫是python內置的實現HTTP請求的基本庫,通過它可以模擬瀏覽器的行為,向指定的服務器發送一個請求,並保存服務器返回的數據。 urlopen函數 函數原型:urlopen(
python爬蟲學習筆記三:圖片爬取
圖片爬取的程式碼 r.content 檔案的二進位制格式 Python引入了with語句來自動幫我們呼叫close()方法: open(path, ‘-模式-‘,encoding=’UTF-8’) w:以寫方式開啟, a:以追加模式開啟 (從 EOF 開始, 必要時建
Python3爬蟲學習筆記(2.Requests庫詳解)
Requests庫功能相比Urllib庫更強大,也許是自帶的 如果沒有,cmd輸入pip install requests獲取即可 例項: import requests response = r
Python 爬蟲學習筆記1
urllib模組: urllib.requests: 開啟和讀取urls urllib.error: 包含urllib.requests 產生的常見錯誤,使用try捕捉 urllib.parse: 包含即系url方法 urllib.robotparse: 解析robots.txt檔案 網頁編碼問題解決:cha
Python 爬蟲學習筆記二: xpath 模組
Python 爬蟲學習筆記二: xpath from lxml 首先應該知道的是xpath 只是一個元素選擇器, 在python 的另外一個庫lxml 中, 想要使用xpath 必須首先下載lxml 庫 lxml 庫的安裝: 很簡單, 具體請檢視 http:
Python爬蟲(二):Requests庫
所謂爬蟲就是模擬客戶端傳送網路請求,獲取網路響應,並按照一定的規則解析獲取的資料並儲存的程式。要說 Python 的爬蟲必然繞不過 Requests 庫。 1 簡介 對於 Requests 庫,官方文件是這麼說的: Requests 唯一的一個非轉基因的 Python HTTP 庫,人類可以安全享用。 警告
python爬蟲學習筆記——使用requests庫編寫爬蟲(1)
首先感謝http://python.jobbole.com ,我是看了此站的文章之後才有寫此文的想法,本人也是開始學python不久,此文僅僅是記錄一些學習過程中遇到的問題,邊學邊寫,初次寫這樣的博文,差錯在所難免,如有差錯也請指出,感激不盡。
Python爬蟲學習筆記(二)——requests庫的使用
pip 安裝 .text rep 瀏覽器 ror clas ade 學習筆記 準備工作 requests庫不是python自帶的庫,可以用pip安裝。在使用時導入requests即可。 基本用法 GET請求 r = requests.get(url) print(r.tex
爬蟲學習筆記1---------requests庫
Unit 1 : Requests庫入門 (7 * 13) (1)、安裝 pip install requests 測試 import requests r = requests.get("http://www.baidu.com") r.stat
Python學習筆記1:用戶登錄
\n win col lines %s courier class for ID 1 import getpass,sys 2 u=0 3 while u< 3: 4 user_name = input(‘Please input you
Python學習筆記1:簡單實現ssh客戶端和服務端
bsp dev bre 客戶端 break 基於 bin listen 客戶 實現基於python 3.6。 server端: 1 __author__ = "PyDev2018" 2 3 import socket,os 4 server = socket.s
Python爬蟲學習筆記(一)——urllib庫的使用
scheme param https ade 網站 dmgr nor 分享圖片 out 前言 我買了崔慶才的《Python3網絡爬蟲開發實戰》,趁著短學期,準備系統地學習下網絡爬蟲。在學習這本書的同時,通過博客摘錄並總結知識點,同時也督促自己每日學習。本書第一章是開發環境的