python爬蟲requests模組

來源:互聯網
上載者:User

標籤:cts   字串   異常   charset   exce   rect   更新   mil   ppa   

requests庫的七個主要方法

1. requests.requests(method, url, **kwargs)

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

        method:請求方式,對應get/put/post等七中方法;

        url:擬擷取頁面的url連結;

        **kwargs:控制訪問的參數,共13個;

        method:請求方式

            GET:請求擷取url位置的資源;

            HEAD:獲得該資源的頭部資訊;

            POST:請求向url位置的資源後附加新的資料;

            PUT:請求向url位置儲存一個資源,覆蓋原url位置的資源;

            PATCH:請求局部更新url位置的資源,即改變該處資源的部分內容;

            DELETE:請求刪除url位置儲存的資源;

        **kwargs:控制訪問的參數,均為可選

            params:字典或位元組序列,作為參數增加到url中;

            data:字典,位元組序列或檔案對象,作為Requests的內容;

            json:Json格式的資料,作為Requests的內容;

            headers:字典,HTTP定製頭;

            cookies:字典或cookiejar,Requests中的cookie;

            auth:元組,支援HTTP認證功能;

            files:字典類型,傳輸檔案;

            timeout:設定超逾時時間,秒為單位;

            proxies:字典類型,設定訪問Proxy 伺服器,可以增加登記認證;

            allow_redirests:True/Flase,預設為True,重新導向開關;

            stream:True/False,預設為True,擷取內容立即下載開關;

            verify:True/False,預設為True,認證SSL認證開關;

            cert:本地SSL憑證路徑;

2. request.get(url, params=None, **kwargs)

擷取HTML網頁的主要方法,對應HTTP的GET;

        params:url中額外參數,字典或位元組流格式,可選;

        **kwargs:12個控制訪問參數;

3.requests.head(url, **kwargs)

擷取HTML網頁頭資訊方法,對應HTTP的HEAD;

        **kwarge:12個控制訪問參數;

4.requests.post(url, data=None, json=None, **kwargs)

向HTML網頁提交post請求的方法,對應HTTP的POST;

        data;字典、位元組序列或檔案,Requests的內容;

        json:Json格式的資料,Requests的內容;

        **kwargs:12個控制訪問參數;

5.requests.put(url, data=None, **kwargs)

向HTML網頁提交PUT要求方法,對應HTTP的PUT;

        data:字典、位元組序列或檔案,Requests的內容;

        **kwargs:12個控制訪問參數;

6. requests.patch(url, data=None, **kwargs)

向HTML頁面提交局部修請求,對應HTTP的PATCH;

        data:字典、位元組序列或檔案,Requests的內容;

        **kwagrs:12個控制訪問參數;

7. requests.delete(uel, **kwagrs)

向HTML頁面提交刪除請求,對對應HTTP的DELETE;

        **kwagrs:12個存取控制的參數;

requests庫的兩個重要的對象

Response對象的屬性

1. r.status_code

  HTTP請求的返回狀態,200表示連結成功,404或其他表示失敗;

2. r.text

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

3. r.encoding

  從HTTP header中猜測的響應內容編碼方式;

  如果header中不存在charset,則認為編碼為ISO-8859-1,r.text根據r.encoding顯示網頁內容;

4. r.apparent_encoding    

  從內容中分析出的響應內容編碼方式(備選編碼方式);

5. r.content

  HTTP響應內容的二進位形式;

Requests庫的異常

1. requests.ConnectionError

  網路連接錯誤異常,如DNS查詢失敗,拒絕連結等;

2. requests.HTTPError

  HTTP錯誤異常;

3. requests.URLRequired

  url缺失異常;

4.requests.TooManyRedirects

  超出最大重新導向次數,產生重新導向異常;

5. requests.ConnectTimeout

  串連遠程伺服器逾時異常;

6. requests.Timeout

  請求url逾時,產生逾時異常;

7.r.raise_for_status()

  如果不是200,產生異常requests.HTTPError;

爬取網頁的通用代碼架構
import requestsdef getHTMLText(url):    try:        r = requests.get(url, timeout=30)        r.raise_for_status()        #RU如果狀態不是200,引發HTTPError異常        r.encoding() = r.appearent_conding()        return r.text    except:        return "產生異常"if __name__ == "__name__":    url = "www.baidu.com"    print(getHTMLText(url))

 

python爬蟲requests模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.