python3使用urllib模組製作網路爬蟲

2021-08-02 14:02:40 字數 1993 閱讀 6466

urllib

urllib模組是python3的url處理包

其中:1、urllib.request主要是開啟和閱讀urls

個人平時主要用的1:

開啟對應的url:urllib.request.open(url)

用urllib.request.build_opener([handler, ...]),來偽裝成對應的瀏覽器

import urllib

#要偽裝成的瀏覽器(我這個是用的chrome)

url=''

opener = urllib.request.build_opener()

#將要偽裝成的瀏覽器新增到對應的http頭部

opener.addheaders=[headers]

#讀取相應的url

data = opener.open(url).read()

#將獲得的html解碼為utf-8

data=data.decode('utf-8')

print(data)

2、urllib.parse主要是用來解析url

主要方法:

urllib.parse.urlparse(urlstring)

功能:將對應的url解析成六部分,並以元組的資料格式返回來。(在功能上和urlsplit()幾乎一模一樣)

import urllib

o = urllib.parse.urlparse('')

print(o)

print(o.path)

print(o.scheme)

print(o.port)

print(o.geturl())

對應的結果:

803、構建乙個新的url——urllib.parse.urljoin(base, url)

url:另乙個url

from urllib.parse import urljoin

a=urljoin('', 'faq.html')

print(a)

結果:這個函式在爬蟲的時候應該方便多了,我之前用的是比較笨的方法直接字串拼接

4、異常處理 urllib.error

用 try-except來捕捉異常

主要的錯誤方式就兩種 urlerror和httperror

因為httperror是urlerror的子類,所以urlerror應該寫在httperror後面,說白了就是找到兒子一定知道父親,找到父親,不一定知道兒子。

結果:[winerror 10060] 由於連線方在一段時間後沒有正確答覆或連線的主機沒有反應,連線嘗試失敗。

如果捕獲到了httperror,則輸出code,不會再處理urlerror異常。如果發生的不是httperror,則會去捕獲urlerror異常,輸出錯誤原因

Python3中urllib使用介紹

urllin2庫 在pytho2.x中使用import urllib 對應的,在python3.x中會使用import urllib.request,urllib.error,urllib.parse。在pytho2.x中使用import urlparse 對應的,在python3.x中會使用imp...

Python3中urllib使用介紹

py2.x urllib庫 urllin2庫 py3.x urllib庫 變化 在pytho2.x中使用import urllib2 對應的,在python3.x中會使用import urllib.request,urllib.error。在pytho2.x中使用import urllib 對應的,...

Python3中urllib使用介紹

2017年08月19日 17 40 16 積微成著 閱讀數 52505 標籤 python urllib 更多個人分類 web spider py2.x py3.x 變化 import urllib.request file urllib.request.urlopen data file.read...