版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
使用requests庫爬取網頁Contents素養(yǎng)目標能夠初步建立起大數(shù)據領域的知識體系,完成一些初級技術實踐。技能目標可以使用requests庫爬取網頁。知識目標熟悉requests庫的定義及包含的類。urllib庫的局限性僅僅實現(xiàn)一個小功能就要用到很多代碼。urllib庫的函數(shù)使用方式并不簡潔什么是requests庫requests是Python的一個第三方HTTP庫requests在urlli的基礎上進行了高度的封裝。讓Python實現(xiàn)訪問網頁并獲取源代碼特點比Python自帶的網絡庫urllib更加簡單、方便和人性化。繼承urllib的所有特性還支持其他特性使用cookie保持會話自動確定響應內容的編碼什么是requests庫requests是Python的一個第三方HTTP庫requests在urllib的基礎上進行了高度的封裝。特點比Python自帶的網絡庫urllib更加簡單、方便和人性化。繼承urllib的所有特性還支持其他特性Requests不是Python標準款,需要安裝,可以在命令行中使用pip進行安裝。安裝命令如下:>>>pipinstallrequests什么是requests庫表示請求對象,用于將一個請求發(fā)送到服務器。requests.Request表示響應對象,其中包含服務器對HTTP請求的響應。request.Response表示請求會話,提供Cookie持久性、連接池和配置。request.SessionRequest類的對象表示一個請求,生命周期只針對一個客戶端請求。requests庫中提供了如下常用的類:一旦請求發(fā)送完畢將釋放掉該請求包含的內容什么是requests庫表示請求對象,用于將一個請求發(fā)送到服務器。requests.Request表示響應對象,其中包含服務器對HTTP請求的響應。request.Response表示請求會話,提供Cookie持久性、連接池和配置。request.SessionSession類的對象可以橫跨多個頁面,當關閉這個客戶端的瀏覽器時:requests庫中提供了如下常用的類:在預先設置的會話周期內一般是20-30min會話所包含的內容會一直存在比如,用戶登錄某個網站時,可以在多個IE窗口發(fā)出多個請求。什么是requests庫使用Requests庫發(fā)送網絡請求的第一步是導入Requests模塊,命令如下:在瀏覽器里面可以直接通過輸入網址訪問的頁面,就是使用了GET方式。使用GET方法獲取網頁源碼語法結構為:Requests庫請求方法>>>importrequestshtml=requests.get('網址')什么是requests庫Requests庫請求方法假如要獲取百度首頁源碼,示例代碼如下:>>>response=requests.get('/')使用的請求方法可以發(fā)現(xiàn)使用GET方法獲取到百度官網,并把數(shù)據賦值給response對象。importurllib.requestimporturllib.parseurl='/s'word={"wd":"數(shù)據采集"}word=urllib.parse.urlencode(word)new_url=url+"?"+wordheaders={"User-Agent":"Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/535.1(KHTML,likeGecko)Chrome/14.0.835.163Safari/535.1"}request=urllib.request.Request(new_url,headers=headers)response=urllib.request.urlopen(request)html=response.read().decode('utf-8')print(html)requests庫初體驗urllib庫發(fā)送get請求requests庫初體驗requests發(fā)送get請求#導入requests庫importrequests#請求的URL路徑和查詢參數(shù)url="/s"param={"wd":"數(shù)據采集"}#請求報頭headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.103Safari/537.36"}#發(fā)送GET請求,返回一個響應對象response=requests.get(url,params=param,headers=headers)#查看響應的內容print(response.text)使用requests庫減少了發(fā)送請求的代碼量比較兩段代碼發(fā)現(xiàn)requests庫初體驗requests庫從細節(jié)上的便捷之處無須再轉換為URL路徑編碼格式,拼接完整的URL路徑。1無須再頻繁地為中文轉換編碼格式。2從發(fā)送請求的函數(shù)名稱,可以很直觀地判斷發(fā)送到服務器的方式。3urlopen()函數(shù)方法返回的是一個文件對象,需要調用read()方法一次性讀??;而get函數(shù)返回的是一個響應對象,可以訪問該對象的text屬性查看響應內容。4URL什么是requests庫說明data這個字典的內容和項數(shù)需要根據實際情況修改,Key和Value在不同的網站是不一樣的。data={'key1':'value1',
'key2':'value2'}html_formdata=requests.post('網址',data=data).content.decode()有些頁面只能通過從另一個頁面單擊某個鏈接或者某個按鈕以后跳過來,不能直接通過在瀏覽器輸入網址訪問。這種網頁就是使用了POST方式。使用POST方法獲取源碼格式如下:什么是requests庫html_json=requests.post('網址',json=data).content.decode()>>>response=requests.put('/',data={'key':'value'})>>>response=requests.delete('/')>>>response=requests.head('/')>>>response=requests.options('/')有些網址提交的內容需要是JSON格式的。Requests實現(xiàn)HTTP其他的基本請求方式也是比較簡單的,比如實現(xiàn)PUT,DELETE,HEAD以及OPTIONS類型代碼如下:requests可以自動將字典轉換為JSON字符串,示例代碼如下:發(fā)送請求函數(shù)功能說明requests.request()構造一個請求,支撐以下各方法的基礎方法。requests.get()獲取HTML網頁的主要方法,對應于HTTP的GET請求方式。requests.head()獲取HTML網頁頭信息的方法,對應于HTTP的HEAD請求方式。requests.post()向HTML網頁提交POST請求的方法,對應于HTTP的POST請求方式。requests.put()向HTML網頁提交PUT請求的方法,對應于HTTP的PUT請求方式。requests.patch()向HTML網頁提交局部修改請求,對應于HTTP的PATCH請求方式。requests.delete()向HTML網頁提交刪除請求,對應于HTTP的DELETE請求方式。requests庫中提供了很多發(fā)送HTTP請求的函數(shù)發(fā)送請求這些函數(shù)都會做兩件事情該對象將被發(fā)送到某個服務器上請求或者查詢一些資源。該對象包含了服務器返回的所有信息,也包括原來創(chuàng)建的Request對象。1構建一個Request類的對象2一旦得到服務器返回的響應,就會產生一個Response對象。返回響應Response類用于動態(tài)地響應客戶端的請求,控制發(fā)送給用戶的信息,并且將動態(tài)地生成響應,包括狀態(tài)碼、網頁的內容等。屬性說明status_codeHTTP請求的返回狀態(tài),200表示連接成功,404表示失敗。textHTTP響應內容的字符串形式,即URL對應的頁面內容。encoding從HTTP請求頭中猜測的響應內容編碼方式。apparent_encoding從內容中分析出的響應編碼的方式(備選編碼方式)。contentHTTP響應內容的二進制形式。返回響應Requests庫可以找出它使用了什么編碼,并且可以設置encoding屬性進行改變。再次調用text屬性獲取返回的文本內容時,將會使用上述設置的新的編碼方式。>>>response.encoding'utf-8'>>>response.encoding='ISO-8859-1'requests庫有道翻譯requests發(fā)送post請求importrequests#F12打開瀏覽器的開發(fā)者工具,觀察網頁變化查找URL和請求參數(shù):url='/jsonapi_s?doctype=json&jsonversion=4'word=input("請輸入你要翻譯的文字:")form_data={'q':word,'le':'en'}headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.103Safari/537.36"}res=requests.po
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東警官學院《生物質能轉化原理與技術》2023-2024學年第一學期期末試卷
- 廣東江門中醫(yī)藥職業(yè)學院《實驗安全與現(xiàn)場急救》2023-2024學年第一學期期末試卷
- 廣東工商職業(yè)技術大學《廣告設計與策劃》2023-2024學年第一學期期末試卷
- 廣東財貿職業(yè)學院《英語綜合技能2》2023-2024學年第一學期期末試卷
- 《危害申報管理》課件
- 感恩企業(yè)培訓課件
- 《化學動力學的任務》課件
- 共青科技職業(yè)學院《工業(yè)機器人應用》2023-2024學年第一學期期末試卷
- 贛州職業(yè)技術學院《中國通史現(xiàn)代》2023-2024學年第一學期期末試卷
- 皮帶系統(tǒng)安全培訓課件
- 壯族文化的靈魂廣西花山巖畫
- 概算實施方案
- 單片機英文資料+英文文獻
- CF5061GXJYNKR管線加油車使用說明書-
- (51)-春季助長小兒推拿探秘
- 中國古典文獻學(全套)
- 內燃機車常見故障分析及處理1733
- 談心談話記錄表 (空白表)
- GB/T 39879-2021疑似毒品中鴉片五種成分檢驗氣相色譜和氣相色譜-質譜法
- Unit10單元基礎知識點和語法點歸納 人教版英語九年級
- 自控原理課件1(英文版)
評論
0/150
提交評論