1. 程式人生 > >Python爬蟲簡單常用方法

Python爬蟲簡單常用方法

Q:什麼是Urllib庫?
A:Urllib庫是Python中一個功能強大,用於操作URL,並在做爬蟲專案時經常要用到的庫。在Python2.X中,分為Urllib庫和Urllib2庫,但是在Python3.X之後合併到UrlLib中。

Q:Urllib升級合併後,常見的變化有哪些呢?
A:(1):在Python2.X中使用import.urllib2—對應的,在Python3.X中會使用import.urllib.request,urlib.error
(2):在Python2.X中使用import.urlparse—對應的,在Python3.X中會使用import.urllib.parse
(3):在Python2.X中使用import.urlopen—對應的,在Python3.X中會使用import.urllib.request.urlopen
(4):在Python2.X中使用import.urlencode—對應的,在Python3.X中會使用import.urllib.parse.urlencode
(5):在Python2.X中使用import.quote—對應的,在Python3.X中會使用import.urllib.request.quote
(6):在Python2.X中使用cookielib.CookieJar—對應的,在Python3.X中會使用http.CookieJar
(6):在Python2.X中使用cookielib.CookieJar—對應的,在Python3.X中會使用http.CookieJar
(7):在Python2.X中使用urllib2.Request—對應的,在Python3.X中會使用urllib.request.Request

常用方法
1. urllib.request.urlopen(“網址”) 返回檔案物件
例如:file = urllib.request.urlopen(“https://www.baidu.com“)
此時可以通過檔案物件的三種讀取方法:.read(),readlines(),readline()

  1. url.request.urlretrieve(“https://www.baidu.com“,filename=”本地檔案地址”) 將爬取到的資訊寫入本地檔案中
    注意:urlretrieve執行過程中會產生一些快取,如要清除這些快取,可以使用urlcleanup()進行清除。如:urllib.request.urlcleanup() 。

  2. 爬取的網頁物件.info() 返回與當前環境有關的資訊。
    如:file = urllib.request.urlopen(“https://www.baidu.com“)
    file.info()

  3. 爬取的網頁物件.getcode() 返回當前爬取網頁的狀態碼
  4. 爬取的網頁物件.geturl() 返回當前正在爬取的url地址

url亂碼解決方案
Q:為什麼會產生url亂碼?
A:一般來說,url標準中只會允許出現一部分ASCII字元,比如數字,字母和部分符號,而其他的一些字元和漢字等等是不符合url標準,所以在url中如果有不合法字元就會產生亂碼,這個就需要url編碼才能解決。在urllib庫中提供了urllib.request.quote()進行編碼。
例如需要對網址”

https://www.baidu.com“編碼,可以通過下列程式碼實現:
urllib.request.quote(“https://www.baidu.com“)

既然存在編碼,如果需要解碼,可以通過urllib.request.unquote(“編碼後的網址”)來進行解碼。

以上是Python3.X中urllib庫的簡單運用