python爬蟲常用模組及一些python標準庫
阿新 • • 發佈:2020-11-28
本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理
以下文章來源於騰訊雲 作者: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內容如下