爬蟲基礎 requests庫 獲取網頁資訊

2021-08-17 10:42:31 字數 3640 閱讀 9164

官網文件–

傳送get,post請求

#post請求

import requests

url=""

data=#該字典鍵值對的形式可以通過form data中查詢

headers=

res=requests.post(url,data=data,headers=headers)

print(res.text)

response方法

res.content.decode(『utf-8』)#或者』gbk』

res.json() #針對響應為json字串解碼為python字典

res.request.url #傳送請求的url位址

res.url #res響應的url位址(頁面跳轉時,請求的url位址與真正開啟的url位址是不同的)

res.request.headers #請求頭

res.headers #res響應頭

傳送帶有header的請求

headers=#user-agent>>>referer>>cookie

-為了模擬瀏覽器,獲取和瀏覽器一樣的內容

超時引數 timeout

requests.get(url,headers=headers,timeout=3) #3秒內必須返回響應,否則會報錯

一般為了避免再發出請求過程中出現異常而中斷請求,一般採用retrying中的retry函式(作為裝飾器呼叫)

from retrying import  retry

import requests

@retry(stop_max_attempt_number=3) #讓被裝飾的函式反覆執行三次,三次全部報錯才會報錯;中間有一次正常,程式繼續執行

def_parse_url

(url):

print("列印效果")

headers=

res=requests.get(url,headers=headers,timeout=5)

# print(res.content.decode('utf-8'))

print(res.status_code)

#增加異常處理

defparse_url

(url):

try:

html_str=_parse_url(url)

except:

html_str=none

return html_str

if __name__ == '__main__':

url = ''

parse_url(url)

處理cookie請求

#爬去人人網資訊

#方法1--沒有cookie的html資訊

import requests

url=""

headers=

res=requests.get(url,headers=headers,timeout=5)

with

open('renren1.html','w',encoding='utf-8') as f:

f.write(res.content.decode())

#方法2---在headers中放入cookie(在html中nx.user會出現使用者名稱)

import requests

url=""

headers=

res=requests.get(url,headers=headers,timeout=5)

with

open('renren2.html','w',encoding='utf-8') as f:

f.write(res.content.decode())

#方法3--requests.session方法

import requests

session=requests.session()#例項化session

post_url=""

#此處的url位址是form表單中action的位址

headers=

post_data=

session.post(url,headers=headers,data=post_data)#使用session傳送post請求,獲取儲存在本地的cookie

url=""

#次數的url是登陸頁面的url

res=session.get(url,headers=headers)#使用session,請求登陸後的頁面

with

open('renren3.html','w',encoding='utf-8') as f:

f.write(res.content.decode())

上傳檔案 files

import requests

#建立files檔案字典

dict_files=

response=requests.post("",files=dict_files)

print(response.text)

證書認證 (12306證書認證)

#方法1---設定verify=false,並取消提示警告

import requests

from requests.packages import urllib3

urllib3.disable_warnings()

res=requests.get("",verify=false)

print(res.status_code)

#方法2--通過cert引數放入證書路徑

res=requests.get("",cert='path')

設定**

import requests

my_proxies=

res=requests.get("",proxies=my_proxies)

print(res.text)

異常處理

requests的異常都在requests.exceptions中

import requests

from requests.exceptions import readtimeout,connectionerror,requestexception

try:

res=requests.get("",timeout=0.1)

print(res.status_code)

except readtimeout:

print("timeout")

except connectionerror:

print("timeout")

except requestexception:

print("error")

爬蟲基礎之Requests庫入門

import requests r requests.get r.status code r.encoding utf 8 r.text方法 說明requests.request 構造乙個請求,支援以下各方法的基礎方法 requests.get 獲取html網頁的主要方法,對應http的get re...

爬蟲 Requests庫基礎知識

4.requests庫的異常 5.爬蟲通用 框架 6.url格式 方法說明 requests.get 獲取html網頁 requests.head 獲取html網頁頭資訊 requests.post 向html網頁提交post請求 requests.put 向html網頁提交put請求 reques...

Python爬蟲requests基礎

import requests url data headers proxies 加密 proxies cookies files get res request.get url,params data,headers headers,proxies proxies,cookies cookies ...