python自學第17天 基本庫的使用

2021-10-01 05:53:41 字數 2354 閱讀 2949

爬蟲:模擬瀏覽器向伺服器發出請求

最基礎的的http庫有urlib,httplib2, requests,treq等

3.1使用urllib

python2中有 urllib和urllib2兩個庫

python3中統一為urllib

python內建的http請求庫

包含四個模組

(1)request:他是最基本的http請求模組,可以用來模擬傳送請求

(2)error:異常處理模組,出現錯誤,捕捉異常。

(3)parse:乙個工具模組,提供了許多url處理辦法。比如拆分,解析,合併等

(4)robotparser:主要用來識別**的robots.txt檔案,然後可以判斷哪些**可以爬,哪些**不可以爬。用的比較少。

3.1.1傳送請求

urllib的request模組的具體用法

1.urlopen()

uriopen.request模組提供了最基本的構造http請求的方法

處理授權驗證(authenticaton)

重定向(redirection)

瀏覽器cookies以及其他內容

舉例:抓取python官網

import urllib.request

response = urllib.request.urlopen(『

print(response.read().decode(『utf-8』))

執行出現錯誤,去解決錯誤

nameerror:name』responsr』 is not defined 未定義名稱錯誤

我把作者的**寫複製到geany上執行如下

檔案gbk從utf-8轉換過來時出錯

找到解決方案。

geany中

文件設定檔案編碼,unicode,utf8。

編輯,首選項,檔案,預設編碼utf8。

然後執行結果如下

應該是抓取成功了。我的為什麼沒有成功,用記事本對比一下

馬虎大意,寫錯了乙個字母。繼續執行。

執行成功,簡單的三行**都能錯誤。程式設計師好嚴謹的工作。繼續學習。

接下來要檢視得到的源**都是什麼,提取出來

import urllib.request

response = urllib.request.urlopen(『

print(response.read().decode(『utf-8』))

在找個**的基礎上:加上了type()方法

import urllib.request

response = urllib.request.urlopen(『

print(type(response))

輸出結果和作者的一樣。

httpresponse型別的物件,主要包含read(),readinto(),getheader(name),getheaders(),fileno()等方法,以及msg,version,status,reason,debuglevel,closed等屬性。(概念模糊,我的理解是這個httpresponse包含了上面說的東西吧)

把這個賦值成為response變數,可以呼叫這些方法和屬性。得到返回結果的一系列資訊了。

舉例 呼叫了read()方法得到返回的網頁內容

呼叫status 屬性得到返回的結果狀態碼

我去打**了

import urllib.request

response = urllib.request.urlopen(『

print(response.status)

print(response.getheaders())

print(response.getheader(『server』))

執行結果和作者的完全相同。

小總結:我不知道read()方法怎麼用的,我只看到了status屬性和呼叫了getheader(),可見的還有用getheader()傳遞了乙個引數獲取了server值,結果是nginx,概念很模糊,可能還是小白的原因,對程式了解太少。

今天學習結束,睡覺。程序有些慢。

python自學第5天(MJ培根)

元祖 1 元祖 唯讀列表,兒子不可變,孫子可能變,可以迴圈查詢,可以切片23 tu 11,22,33,alex 原紗央莉 吉澤明步 桃谷繪理香 蒂亞 xiepeigen egon 4 tu 3 tu 3 upper typeerror tuple object does not support it...

第17天 提前的話。

恩。今天發的好早啊,一天看書的效率都太低了。感覺,好累啊。然後,教練的隊伍也跌出金牌行列,感覺也很不舒服。尤其中間到過可以有出線的可能。期間,還是想到那個從二本出來可以做什麼的問題,縱然老師吹到沒邊,但是,他說的都是極其理想的情況下是那樣的,可現實中,他說的那類是不存在的。不說這,全世界都沒全才到每...

python自學第11天爬蟲例項學習

測試返回200 下面展示一些內聯 片。import requests r requests.get url if r.status code 200 raise exception 返回200則進行下一步爬取url import requests r requests.get url if r.st...