1. 程式人生 > 實用技巧 >python爬蟲常用模組及一些python標準庫

python爬蟲常用模組及一些python標準庫

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理

以下文章來源於騰訊雲 作者:py3study

( 想要學習Python?Python學習交流群:1039649593,滿足你的需求,資料都已經上傳群檔案流,可以自行下載!還有海量最新2020python學習資料。 )

python標準庫之urllib模組

涉及到網路這塊,必不可少的模式就是urllib.request了,顧名思義這個模組主要負責開啟URL和HTTP協議之類的

urllib最簡單的應用就是

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

url 需要開啟的網址

data Post提交的資料

timeout 設定網站的訪問超時時間

urlopen返回物件提供方法

read() , readline() ,readlines() , fileno() , close() :對HTTPResponse型別資料進行操作

geturl()函式返回response的url資訊,常用於url重定向的情況

info()函式返回response的基本資訊

getcode()函式返回response的狀態程式碼,最常見的程式碼是200伺服器成功返回網頁,404請求的網頁不存在,503伺服器暫時不可用

編寫一個testurllib.py來實驗一下,程式碼如下

#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'
import urllib.request
import time
import platform
import os
def clear():
    '''該函式用於清屏'''
    print(u'內容較多,顯示3秒後翻頁')
    time.sleep(3)
    OS = platform.system()
    if (OS == u'Windows'):
        os.system('cls')
    else:
        os.system('clear')

def linkbaidu():
    url = 'https://www.baidu.com'
    try:
        response = urllib.request.urlopen(url, timeout=3)
    except urllib.request.URLError:
        print(u'網路地址錯誤')
        exit()
    with open('baidu.txt','w') as fp:
        fp.write(response.read().decode('utf-8'))
    print(u'獲取url資訊,response,geturl() \n: {}'.format(response.geturl()))
    print(u'獲取返回程式碼,response.getcode() \n:{}'.format(response.getcode()))
    print(u'獲取返回資訊,response.info() \n:{}'.format(response.info()))
    print(u'獲取的網頁內容以存放當前目錄baidu.txt中,請自行檢視')

if __name__ == '__main__':
    linkbaidu()

應該看到的效果

baidu.txt內容如下