1. 程式人生 > >python爬蟲學習筆記1:requests庫及robots協議

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爬蟲學習筆記1requestsrobots協議

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爬蟲學習筆記3bs4BeautifulSoup學習

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網絡爬蟲開發實戰》,趁著短學期,準備系統地學習下網絡爬蟲。在學習這本書的同時,通過博客摘錄並總結知識點,同時也督促自己每日學習。本書第一章是開發環境的