1. 程式人生 > >requests 庫 & robots 協議

requests 庫 & robots 協議

import requests


# ===通用程式碼框架
def get_html_text(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()  # 如果狀態不是200,引發HTTP——error異常
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "產生異常"


'''
response物件的屬性
屬性                            說明
r.status_code           HTTP請求的返回狀態,200表示連線成功,404表示失敗 
r.text                  HTTP響應內容的字串形式,即,url對應的頁面內容 
r.encoding              從HTTP header中猜測的響應內容編碼方式 
r.apparent_encoding     從內容中分析出的響應內容編碼方式(備選編碼方式) 
r.content               HTTP響應內容的二進位制形式
'''

'''
requests庫的七個常用方法
方法                          說明 
requests.request()      構造一個請求,支撐以下各方法的基礎方法 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
requests.get()          獲取HTML網頁的主要方法,對應於HTTP的GET 
'''

 # 測試一百次requests需要多長時間
 n = 0
 url = 'http://www.baidu.com'
#while n < 100:
     get_html_text(url)
     print(get_html_text(url))
     n += 1

'''
====網路爬蟲的尺寸
網頁  requests
網站  scrapy
全網  定製開發

====網路爬蟲引發的問題
效能騷擾 
法律風險 
隱私洩露

====robots協議
Robots Exclusion Standard,網路爬蟲排除標準
==作用:
網站告知網路爬蟲哪些頁面可以抓取,哪些不行
==形式:
在網站根目錄下的robots.txt檔案
# *代表所有,/代表根目錄 
User‐agent: *  
Disallow: / 
'''