Python3 默認提供了urllib庫,可以爬取網頁信息,但其中確實有不方便的地方,如:處理網頁驗證和Cookies,以及Hander頭信息處理。
為了更加方便處理,有了更為強大的庫 urllib3 和 requests, 本節會分別介紹一下,以后我們著重使用requests。
1. urllib3庫的使用:
- 安裝:通過使用pip命令來安裝urllib3
pip install urllib3
- 簡單使用:
import urllib3
import re
# 實例化產生請求對象
http = urllib3.PoolManager()
# get請求指定網址
url = "http://www.baidu.com"
res = http.request("GET",url)
# 獲取HTTP狀態碼
print("status:%d" % res.status)
# 獲取響應內容
data = res.data.decode("utf-8")
# 正則解析并輸出
print(re.findall("
",data))
- 其他設置: 增加了超時時間,請求參數等設置
import urllib3
import re
url = "http://www.baidu.com"
http = urllib3.PoolManager(timeout = 4.0) #設置超時時間
res = http.request(
"GET",
url,
#headers={
# 'User-Agent':'Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/20100101Firefox/4.0.1',
#},
fields={'id':100,'name':'lisi'}, #請求參數信息
)
print("status:%d" % res.status)
data = res.data.decode("utf-8")
print(re.findall("
",data))
2. requests庫的使用:
- 安裝:通過使用pip命令來安裝requests
pip install requests
- 簡單使用:
import requests
import re
url = "http://www.baidu.com"
# 抓取信息
res = requests.get(url)
#獲取HTTP狀態碼
print("status:%d" % res.status_code)
# 獲取響應內容
data = res.content.decode("utf-8")
#解析出結果
print(re.findall("
",data))
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
信息
+關注
關注
0文章
409瀏覽量
36394 -
python
+關注
關注
57文章
4876瀏覽量
90025
發布評論請先 登錄
相關推薦
熱點推薦
無法去除 Python VisionFive.i2c 庫的終端輸出?
燒的官方最新八月份的 debian 12 的系統。
根據這個案例安裝好了 python 環境和 VisionFive 庫。
執行下面這條代碼:
import VisionFive.i2c
發表于 02-25 06:13
微庫與標準C庫的區別
主要的差異:
1.代碼(數據)量更小(對比上圖)。
2.缺少一些不常用標準庫函數,比如:文件 I/O 的庫函數。
3.微庫最大程度優化代碼量,可能會導致有些庫代碼運行速度更慢。
4.可用于RTOS這類
發表于 12-09 07:49
Python調用API教程
兩個不同系統之間的信息交互。在這篇文章中,我們將詳細介紹Python調用API的方法和技巧。 一、用Requests庫發送HTTP請求 使用Pyth
目前最新版的userapps如何安裝D1s環境?
Traceback (most recent call last):
File \"/usr/lib/python3/dist-packages/urllib3/connection.py\"
發表于 09-25 07:33
數據庫數據恢復—服務器異常斷電導致Oracle數據庫故障的數據恢復案例
備份,僅有一些斷斷續續的歸檔日志。
Oracle數據庫恢復流程:
1、檢測數據庫故障情況;
2、嘗試掛起并修復數據庫;
3、解析數據庫
linux虛擬環境中調用Linux 版matlab編譯的python庫時出錯
matlab代碼編譯為CAO_python的python庫,其中cp_Main_python.m為入口文件,編譯后生成的文件有mccExcludedFiles.log、setup.py
發表于 07-18 10:40
數據庫數據恢復—MongoDB數據庫文件丟失的數據恢復案例
MongoDB數據庫數據恢復環境:
一臺操作系統為Windows Server的虛擬機上部署MongoDB數據庫。
MongoDB數據庫故障:
工作人員在MongoDB服務仍然開啟的情況下
自己寫庫:構建庫函數雛形
實際上,構建固件庫是一件費時費力的事情,并且它對開發者對芯片的熟悉程度有一定的要求。甚至,當一個固件庫的封裝程度很高時,想要閱讀并理解該固件庫的底層代碼也會變成一件有較高難度的事情。瑞薩RA系列
基于STM32 HAL庫與標準庫的esp8266接入機智云方案(二)
在《基于STM32HAL庫與標準庫的esp8266接入機智云方案(一)》中,我們詳細介紹了硬件連接和機智云客戶端的創建。本篇將重點講解如何下載代碼、分析下載的代碼,并直接使用這些代碼連接機智云。同時
MySQL數據庫是什么
開發、企業應用和大數據場景。以下是其核心特性和應用場景的詳細說明: 核心特性 關系型數據庫模型 數據以 表(Table) 形式組織,表由行(記錄)和列(字段)構成。 通過 主鍵、外鍵 實現表間關聯,支持復雜查詢和事務處理。 示例 :電商系統中,用戶表、訂單表、商品表
Python在嵌入式系統中的應用場景
你想把你的職業生涯提升到一個新的水平?Python在嵌入式系統中正在成為一股不可缺少的新力量。盡管傳統上嵌入式開發更多地依賴于C和C++語言,Python的優勢在于其簡潔的語法、豐富的庫和快速的開發周期,這使得它在某些嵌入式場景
python中urllib3庫和requests庫的使用
評論