自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

怎樣使用Requests模塊抓取網(wǎng)頁(yè)?

開(kāi)發(fā) 前端
爬取網(wǎng)頁(yè)其實(shí)就是通過(guò)URL獲取網(wǎng)頁(yè)信息,網(wǎng)頁(yè)信息的實(shí)質(zhì)是一段添加了JavaScript和CSS的HTML代碼。

?爬取網(wǎng)頁(yè)其實(shí)就是通過(guò)URL獲取網(wǎng)頁(yè)信息,網(wǎng)頁(yè)信息的實(shí)質(zhì)是一段添加了JavaScript和CSS的HTML代碼。Python提供了一個(gè)抓取網(wǎng)頁(yè)信息的第三方模塊requests,requests模塊自稱(chēng)“HTTP for Humans”,直譯過(guò)來(lái)的意思是專(zhuān)門(mén)為人類(lèi)而設(shè)計(jì)的HTTP模塊,該模塊支持發(fā)送請(qǐng)求,也支持獲取響應(yīng)。

1.發(fā)送請(qǐng)求

requests模塊提供了很多發(fā)送HTTP請(qǐng)求的函數(shù),常用的請(qǐng)求函數(shù)具體如表10-1所示。

表10-1 requests模塊的請(qǐng)求函數(shù)

2.獲取響應(yīng)

requests模塊提供的Response 類(lèi)對(duì)象用于動(dòng)態(tài)地響應(yīng)客戶(hù)端的請(qǐng)求,控制發(fā)送給用戶(hù)的信息,并且將動(dòng)態(tài)地生成響應(yīng),包括狀態(tài)碼、網(wǎng)頁(yè)的內(nèi)容等。接下來(lái)通過(guò)一張表來(lái)列舉Response類(lèi)可以獲取到的信息,如表10-2所示。

表10-2 Response 類(lèi)的常用屬性

接下來(lái)通過(guò)一個(gè)案例來(lái)演示如何使用requests模塊抓取百度網(wǎng)頁(yè),具體代碼如下:

# 01 requests baidu
import requests
base_url = 'http://www.baidu.com'
#發(fā)送GET請(qǐng)求
res = requests.get (base_url)
print("響應(yīng)狀態(tài)碼:{}".format(res.status_code)) #獲取響應(yīng)狀態(tài)碼
print("編碼方式:{}".format(res.encoding) #獲取響應(yīng)內(nèi)容的編碼方式
res.encoding = 'utf-8' #更新響應(yīng)內(nèi)容的編碼方式為UIE-8
print("網(wǎng)頁(yè)源代碼:\n{}".format(res.text)) #獲取響應(yīng)內(nèi)容

以上代碼中,第2行使用import導(dǎo)入了requests模塊;第3~4行代碼根據(jù)URL向服務(wù)器發(fā)送了一個(gè)GET請(qǐng)求,并使用變量res接收服務(wù)器返回的響應(yīng)內(nèi)容;第5~6行代碼打印了響應(yīng)內(nèi)容的狀態(tài)碼和編碼方式;第7行將響應(yīng)內(nèi)容的編碼方式更改為“utf-8”;第8行代碼打印了響應(yīng)內(nèi)容。運(yùn)行程序,程序的輸出結(jié)果如下:

響應(yīng)狀態(tài)碼:200
編碼方式:ISO-8859-1
網(wǎng)頁(yè)源代碼:
<!DOCTYPE html>
<!-STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;
charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=
always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.
com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head>
<body link=#0000cc>…省略N行…</body></html>

值得一提的是,使用requests模塊爬取網(wǎng)頁(yè)時(shí),可能會(huì)因?yàn)闆](méi)有連接網(wǎng)絡(luò)、服務(wù)器連接失敗等原因?qū)е庐a(chǎn)生各種異常,最常見(jiàn)的兩個(gè)異常是URLError和HTTPError,這些網(wǎng)絡(luò)異常可以使用 try…except 語(yǔ)句捕獲與處理。

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2012-05-17 15:11:23

linux

2022-06-28 13:41:07

瀏覽網(wǎng)頁(yè)互聯(lián)網(wǎng)交互Python

2021-11-24 17:22:06

網(wǎng)絡(luò)抓取網(wǎng)絡(luò)爬蟲(chóng)數(shù)據(jù)收集

2009-07-31 10:34:41

ASP.NET抓取網(wǎng)頁(yè)

2009-12-02 15:50:41

PHP抓取網(wǎng)頁(yè)內(nèi)容

2010-03-03 15:39:50

Python抓取網(wǎng)頁(yè)內(nèi)

2025-04-03 02:35:00

GoogleGemini工具

2019-11-19 15:43:07

人工智能軟件技術(shù)

2020-10-12 08:19:43

Python爬蟲(chóng)網(wǎng)頁(yè)數(shù)據(jù)

2023-11-27 08:51:46

PythonRequests庫(kù)

2010-03-04 11:22:59

Python抓取網(wǎng)頁(yè)圖

2009-09-07 14:00:57

C#抓取網(wǎng)頁(yè)

2024-10-10 15:04:34

2010-07-16 11:16:40

Perl抓取網(wǎng)頁(yè)

2009-09-25 11:14:16

Hibernate批量

2019-01-31 09:02:56

網(wǎng)頁(yè)抓取設(shè)計(jì)模式數(shù)據(jù)

2009-12-17 15:28:32

內(nèi)核模塊編譯

2010-01-18 14:41:33

VB.NET抓取網(wǎng)頁(yè)

2022-08-12 08:00:00

編碼語(yǔ)言開(kāi)發(fā)工具

2020-11-11 10:58:59

Scrapy
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)