python網路爬蟲之requests庫

2021-08-14 17:37:10 字數 2092 閱讀 8819

import requests
1、requests庫有兩個物件,request物件和response物件,下表是response物件的屬性

屬性說明

r.status_code

http請求的返回狀態,200表示連線成功,404表示失敗

r.text

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

r.enconding

從httpheader中猜測的響應內容編碼方式

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

r.content

http響應內容的二進位制形式

2、requests庫異常

異常說明

requests.connectionerror

網路連線錯誤異常,如dns查詢失敗,拒絕連線

http錯誤異常

requests.urlrequired

url缺失異常

requests.toomanyredirects

超過最大重定向次數,產生重定向異常

requests.connecttimeout

連線遠端伺服器超時異常

requests.timeout

請求url超時,產生超時異常

3、get()函式,獲取html網頁的主要方法,對應http的get,requests.get(url,params=none,**kwargs) url是鏈結位址,params是url中的額外引數,字典或位元組流格式,可選。**kwargs,十二個控制訪問的引數。

#通用爬取框架

import requests

def gethtmltext(url):

try:

r=requests.get(url,timeout=30)

r.raise_for_status()#如果不是200,引發httperror異常

return r.text

except:

return "產生異常"import requests

payload = #wd是搜尋詞,rn是搜尋結果數量

r = requests.get("", params=payload)

print一下的話,你會發現
>>> print(r.url)

?wd=%e4%b8%ad%e5%9b%bd&rn=100

5.模擬瀏覽器訪問
import requests

url=""

try:

kv=r=requests.get(url,headers=kv)

r.raise_for_status()

print(r.text[:1000])

except:

print("爬取失敗")

6、爬取
import requests

import os

#爬取的是兩頭狼

url=""

keyword='程式猿'

root="e:/web_spider/"

path=root+url.split('/')[-1]

kv=kd=

try:

# r=requests.get(url,params=kd,headers=kv)

if not os.path.exists(root):

os.mkdir(root)

if not os.path.exists(path):

r=requests.get(url,headers=kv)

r.raise_for_status()

with open(path,'wb') as f:

f.write(r.content)

f.close()

print("檔案儲存成功")

else:

print("檔案已經存在")

except:

print("爬取失敗")

注:參考資源來自中國大學mooc《python網路爬蟲與資訊提取》

python學習筆記 flask之request

from flask import request coding utf 8 from flask import flask,request def index 訪問上面定義的路徑就是訪問此方法 請求行 print request.method request.method 獲取請求方法 print...

Python 網路爬蟲之BeautifulSoup

在上一節記錄了如何使用urllib進行網路爬蟲,並將資料儲存。但是我當時是使用的正規表示式進行的資料過濾,有些不全面。接下來我將記錄一種更加方便的解析資料的操作 beautifulsoup 安裝beautifulsoup4 導包import urllib.request from bs4 impor...

Python之網路爬蟲(1)

將 中所有的出版社資訊都爬取出來。如下 可以看到,網頁中有許多的出版社。下面我們用 將所有出版社的名字爬取出來,並儲存在檔案中。import urllib.request import re url data urllib.request.urlopen url read data data.dec...