中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python網絡爬蟲requests庫如何使用

發布時間:2023-05-16 09:24:10 來源:億速云 閱讀:100 作者:zzz 欄目:編程語言

這篇文章主要講解了“Python網絡爬蟲requests庫如何使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python網絡爬蟲requests庫如何使用”吧!

1. 什么是網絡爬蟲

簡單來說,就是構建一個程序,以自動化的方式從網絡上下載、解析和組織數據。

就像我們瀏覽網頁的時候,對于我們感興趣的內容我們會復制粘貼到自己的筆記本中,方便下次閱讀瀏覽——網絡爬蟲幫我們自動完成這些內容

當然如果遇到一些無法復制粘貼的網站——網絡爬蟲就更能顯示它的力量了

為什么需要網絡爬蟲

當我們需要做一些數據分析的時候——而很多時候這些數據存儲在網頁中,手動下載需要花費的時間太長,這時候我們就需要網絡爬蟲幫助我們自動爬取這些數據來(當然我們會過濾掉網頁上那些沒用的東西)

網絡爬蟲的應用

訪問和收集網絡數據有十分廣泛的應用,其中很多屬于數據科學領域 我們來看看下面這些例子:

淘寶網的賣家需要從海量的評價中尋找到有用的正面的和反面的信息,來幫助他進一步抓住顧客的心,分析顧客的購物心理有學者在twitter、微博等社交媒體上爬取信息來構建一個數據集,從而建立一個識別抑郁癥和自殺念頭的預測模型——讓更多需要援助的人得到幫助——當然我們也需要考慮到隱私相關的問題——但這很酷不是嗎?

作為一名人工智能工程師,他們從Ins上爬取志愿者所展示的喜好的圖片,來訓練深度學習模型,從而預測給出的圖像是否會被志愿者所喜好——手機制造商將這些模型納入他們的圖片應用程序中,推送給你。電商平臺的數據科學家爬取用戶瀏覽商品的信息,進行分析和預測,以便推送給用戶他最想要了解和購買的商品

是的!網絡爬蟲的應用十分廣泛,小到我們日常用來批量爬取一些高清的壁紙,圖片;大到人工智能、深度學習、商業策略制定的數據來源等。

這個時代是數據的時代,數據就是“新石油”

2. 網絡傳輸協議HTTP

沒錯,講到網絡爬蟲一定繞不開的就是這個HTTP,當然我們不需要像網絡工程師那樣詳細的了解協議定義的方方面面,但是作為入門我們還是得具有一定的認識才行

國際標準化組織ISO維護了開放式通信系統互聯參考模型OSI,而該模型將計算機通信結構分為七層

  1. 物理層:包括以太網協議、USB協議、藍牙協議等

  2. 數據鏈路層:包含以太網協議

  3. 網絡層:包含IP協議

  4. 傳輸層:包含TCP、UDP協議

  5. 會話層:包含用于打開/關閉和管理會話的協議

  6. 表示層:包含保護格式還和翻譯數據的協議

  7. 應用層:包含HTTP和DNS網絡服務協議

現在來看看HTTP請求和響應是什么樣子的(因為后面會涉及自定義請求頭) 一般請求消息由一下內容構成:

  • 請求行

  • 多個請求頭

  • 空行

  • 可選的消息主體

具體的請求消息:

GET https://www.baidu.com/?tn=80035161_1_dg HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-Hans-CN,zh-Hans;q=0.8,en-GB;q=0.5,en;q=0.3
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362
Accept-Encoding: gzip, deflate, br
Host: www.baidu.com
Connection: Keep-Alive

這個是訪問百度時的請求,當然里面的很多細節我們也不需要知道,因為python的request包會幫助我們完成我們的爬取

當然我們也能查看網頁對我們的請求返回的信息:

HTTP/1.1 200 OK //這邊的狀態碼為200表示我們的請求成功
Bdpagetype: 2
Cache-Control: private
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Sun, 09 Aug 2020 02:57:00 GMT
Expires: Sun, 09 Aug 2020 02:56:59 GMT
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked

3. requests庫(不喜歡理論知識的同學們可以直接來這里哦)

我們知道其實python還預置了另外的處理HTTP的庫——urllib和urllib3,但是requests庫學起來更容易——代碼更簡潔易懂。 當然當我們成功爬取下網頁時,將要將里面我們感興趣的東西提取出來的時候, 我們會提到另一個十分有用的庫——美麗湯(Beautiful Soup)——這又是后話了

1. requests庫的安裝

這里我們可以直接找到requests的.whl文件安裝,也可以直接使用pip來安裝(當然如果有pycharm的同學可以直接從里面的環境加載中下載)

2. 實戰

下面我們開始正式爬取網頁

代碼如下:

import requests
target = 'https://www.baidu.com/'
get_url = requests.get(url=target)
print(get_url.status_code)
print(get_url.text)

輸出結果

200 //返回狀態碼200表示請求成功
<!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 
src=//www.baidu.com/img/gs.gif> 
</p> </div> </div> </div> </body> </html>

上面五行代碼做了很多事情,我們已經可以將網頁的HTML內容全部抓取

第一行代碼:加載requests庫 第二行代碼:給出需要爬取的網站 第三行代碼:使用requests進行請求 一般的格式如下:

對象 = requests.get(url=你想要爬取的網站地址)

第四行代碼:返回請求的狀態碼 第五行代碼:輸出相應的內容主體

當然我們還可以打印更多的內容

import requests

target = 'https://www.baidu.com/'
get_url = requests.get(url=target)
# print(get_url.status_code)
# print(get_url.text)
print(get_url.reason)//返回狀態
print(get_url.headers)
//返回HTTP響應中包含的服務器頭的內容(和上面展示的內容差不多)
print(get_url.request)
print(get_url.request.headers)//返回請求中頭的內容
OK
{'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 
'Connection': 'keep-alive', 
'Content-Encoding': 'gzip', 
'Content-Type': 'text/html', 
'Date': 'Sun, 09 Aug 2020 04:14:22 GMT',
'Last-Modified': 'Mon, 23 Jan 2017 13:23:55 GMT', 
'Pragma': 'no-cache', 
'Server': 'bfe/1.0.8.18', 
'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'}
<PreparedRequest [GET]>
{'User-Agent': 'python-requests/2.22.0', 
'Accept-Encoding': 'gzip, deflate', 
'Accept': '*/*', 
'Connection': 'keep-alive'}

感謝各位的閱讀,以上就是“Python網絡爬蟲requests庫如何使用”的內容了,經過本文的學習后,相信大家對Python網絡爬蟲requests庫如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永和县| 丰城市| 朝阳市| 安徽省| 临清市| 南通市| 大庆市| 沙雅县| 蒙阴县| 靖州| 赣州市| 岗巴县| 响水县| 汝阳县| 久治县| 邵阳县| 堆龙德庆县| 卢湾区| 美姑县| 安龙县| 广元市| 改则县| 邛崃市| 邹城市| 云阳县| 龙泉市| 大宁县| 玉树县| 丰顺县| 宿州市| 宜宾县| 阿拉善右旗| 昌平区| 双峰县| 达拉特旗| 班戈县| 庆安县| 荥经县| 开鲁县| 夏邑县| 红原县|