2 requests方法實現
(不常用,第二種方法要記住)
所有的url字元代表要爬取的**
1.1、生成請求
import urllib3 #匯入urllib3庫
() #建立poolmanger例項
) #通過request函式建立請求,此處使用'get'方法
print
('伺服器響應碼:',rq.status)
print
('響應實體:'rq.data) #如果出現中文亂碼可 rq.data.
decode
('utf-8'
)
補充:常見的響應嗎狀態
狀態碼說明
通俗解釋
1xx響應中——表示請求已經接受,繼續處理
訊息:一般是告訴客戶端請求已經收到了,正在處理,別急。
2xx成功——表示請求已經被成功接收、理解、接受。
處理成功:一般表示請求收悉、我明白你要的、請求已受理、已經處理完成等資訊。
3xx重定向——要完成請求必須進行更進一步的操作
重定向到其它地方:它讓客戶端再發起乙個請求以完成整個處理。
4xx客戶端錯誤——請求有語法錯誤或請求無法實現
處理發生錯誤,責任在客戶端:如客戶端的請求乙個不存在的資源,客戶端未被授權,禁止訪問等。
5xx伺服器端錯誤——伺服器未能實現合法的請求。
處理發生錯誤,責任在服務端:如服務端丟擲異常,路由出錯,http版本不支援等。
1.2、請求頭處理(在上面的基礎上)
ua =
,headers=ua)
1.3、新增 timeout網路延時,retries重試,redirect重定向 設定rq = http.
request
('get'
,url,timeout=
3.0,retries=
5,redirect=
4) #網路延時3秒,請求重試5次,重定向4次
1.4、request方法完整**import urllib3
('伺服器響應碼:'
,rq.status)
print
('獲取的內容:'rq.data.
decode
('utf-8'
))
(重點)
2.1、生成請求
import requests
rqg = requests.
get(url) 生成get請求
print
('結果型別:'
type
(rqg)
)print
('狀態碼:'rqg.status_code)
print
('編碼:'rqg.encoding)
print
('響應頭:'rqg.headers)
print
('檢視網頁內容:'rqg.text)
2.2、指定編碼(一種手動,一種自動)rqg.encoding =
'utf-8' #手動指定編碼(get獲取之後)
import chardet #匯入chardet庫
rqg.encoding=chardet.
detect
(rqg.content)
['encoding'
] #將檢測到的編碼賦值給rqg.encoding
2.3、請求頭與響應頭處理ua =
,headers=ua,timeout=
2) #新增了網路延時
2.4、requests方法完整**import requests
import chardet
ua =
rqg=requests.
get(url,headers=ua,timeout=
3.0)
rqg.encoding = chardet.
detect
(rqg.content)
['encoding'
]print
('檢視網頁內容:'
,rqg.text)
python爬蟲 爬取靜態網頁
爬蟲新手剛入門,萌新練手交流作 import requests import bs4 from bs4 import beautifulsoup 偽裝瀏覽器,獲取源 def gethtml url headers 偽裝瀏覽器 response requests.get url,headers hea...
Python爬取靜態網頁操作
靜態網頁一般指純粹的html格式的網頁,對於爬蟲來說,靜態網頁的資料都比較容易獲取,利用好requests庫就能輕鬆傳送http請求,獲取到網頁的資料。requests庫可以幫助我們獲取到響應內容,再通過一些引數來滿足我們的需求,它的安裝也十分簡單,對於windows使用者來說,在已經裝好pytho...
靜態網頁內容爬取(python)
以 漏洞掃瞄為例 from bs4 import beautifulsoup from urllib.request import urlopen import pymysql as mysqldb import re import os 插入資料 def insertdata lis cursor...