Python基礎(chǔ)第三方模塊requests openpyxl
一、第三方模塊的下載與使用
1、什么是第三方模塊
- 第三方模塊是指別人編寫的模塊
- 第三方模塊一般功能都比較強大
2、如何安裝第三方模塊
方式一:pip工具
安裝方式:
1、打開python解釋器的安裝目錄,找到Scipts目錄,該目錄下會有pip.exe的程序,這個程序就是用來安裝第三方模塊的
2、將python版本對應(yīng)的Scipts文件目錄添加至系統(tǒng)環(huán)境變量
3、打開cmd命令提示符窗口,在cmd命令窗口中運行下載第三方模塊的句式
下載第三方模塊的句式 pip install 模塊名 下載第三方模塊臨時切換倉庫 pip install 模塊名 -i 倉庫地址 下載第三方模塊指定版本(不指定默認(rèn)是最新版) pip install 模塊名==版本號 -i 倉庫地址
注意事項:
我們的電腦中可能安裝了多個版本的python解釋器,每個版本中都有pip工具,在我們使用pip安裝模塊時,需要下載在我們使用的版本中的pip工具中,否則下載的模塊將無法運行
方式二:pycharm中下載
安裝方式:
1、在pycharm中點擊左上角File
2、在下方目錄中找到Settings
3、找到Project,打開python Interpreter
4、點擊'+'號,在上方窗口內(nèi)輸入想要下載的模塊
5、點擊Install Package,等待即可下載完成
注意事項:
1、在安裝窗口右側(cè)找到Specify versin 可選擇需要下載模塊版本號
2、Manage Repositories可配置倉庫地址
3、注意事項
1、報錯并有警告信息
WARNING: You are using pip version 20.2.1;
- 原因在于pip版本過低 只需要拷貝后面的命令執(zhí)行更 新操作即可
d:\python38\python.exe -m pip install --upgrade pip
- 更新完成后再次執(zhí)行下載第三方模塊的命令即可
2、報錯,提示關(guān)鍵字
Timeout
- 提示該關(guān)鍵字說明當(dāng)前計算機網(wǎng)絡(luò)不穩(wěn)定,只需更換網(wǎng)絡(luò)或等待網(wǎng)絡(luò)穩(wěn)定后下載即可
3、報錯,無關(guān)鍵字
面向百度搜索
- 只需拷貝報錯信息到百度搜索即可
- 通常都是需要用戶提前準(zhǔn)備好一些下載環(huán)境才可以順利下載
4、下載速度慢
pip的默認(rèn)下載地址都是國外的,我們只需要切換下載地址即可
- 關(guān)于切換下載地址的方式在上面已經(jīng)說明
- 常用下載地址
清華大學(xué) :
https://pypi.tuna.tsinghua.edu.cn/simple/阿里云:
http://mirrors.aliyun.com/pypi/simple/中國科學(xué)技術(shù)大學(xué) :
http://pypi.mirrors.ustc.edu.cn/simple/華中科技大學(xué):
http://pypi.hustunique.com/豆瓣源:
http://pypi.douban.com/simple/騰訊源:
http://mirrors.cloud.tencent.com/pypi/simple華為鏡像源:
https://repo.huaweicloud.com/repository/pypi/simple/
二、網(wǎng)絡(luò)爬蟲之requests模塊
1、簡介
- requests模塊是一個第三方模塊,需要在額外進行安裝
- 它是一個用于網(wǎng)絡(luò)請求的模塊,主要用來向瀏覽器發(fā)送請求
2、使用方法
導(dǎo)入模塊:
import requests
1.關(guān)鍵詞:get( )
作用:用于向瀏覽器發(fā)送請求
代碼用法:
url = "https://www.baidu.com" res = requests.get(url)
2.關(guān)鍵詞:encoding
作用:指定編碼格式,針對一些古老的網(wǎng)站,在獲取網(wǎng)頁信息的時候,不指定編碼格式的話可能會出現(xiàn)亂碼。不指定的情況下默認(rèn)使用系統(tǒng)自帶的編碼環(huán)境
代碼用法:
res = encoding = 'utf8'
3.關(guān)鍵詞:content
作用:返回的是一個原生字符串,是bytes類型
代碼用法:
print(res.content) # 返回的是一個原生字符串,是bytes類型
4.關(guān)鍵詞:text
作用:獲取字符串類型的網(wǎng)頁數(shù)據(jù)(默認(rèn)按照utf8)
代碼用法:
print(res.text) # 獲取字符串類型的網(wǎng)頁數(shù)據(jù)(默認(rèn)按照utf8)
5.關(guān)鍵詞:url
作用:打印請求
代碼用法:
print(res.url)
6.關(guān)鍵詞:status_code
作用:打印狀態(tài)碼
代碼用法:
print(res.staus_code)
三、網(wǎng)絡(luò)爬蟲實戰(zhàn)
1、爬取鏈家網(wǎng)站房屋信息
import re import requests from openpyxl import Workbook url = 'https://sh.lianjia.com/ershoufang/pg1/' for i in range(1, 101): url = f"https://sh.lianjia.com/ershoufang/pg{i}/" print(url) res = requests.get(url) url_data = res.text home_biaoqian = re.findall( """data-is_focus="" data-sl="">(.*?)</a>""", url_data) home_xiaoqu_name = re.findall( """<a href="https:.*?" rel="external nofollow" target="_blank" data-log_index=".*?" data-el=".*?">(.*?)</a>""", url_data) home_xiaoqu_dir = re.findall("""<a rel="external nofollow" target="_blank">(.*?)</a>""", url_data) home_jutixinxi = re.findall("""<div class="houseInfo"><span class="houseIcon"></span>(.*?)</div>""", url_data) home_guanzhudu = re.findall("""<div class="followInfo"><span class="starIcon"></span>(.*?)</div>""", url_data) home_zongjia = re.findall("""<span class="">(.*?)</span>""", url_data) home_danjia = re.findall("""<span>(.*?)</span>""", url_data) home_data = zip(home_xiaoqu_name, home_xiaoqu_dir, home_biaoqian, home_jutixinxi, home_guanzhudu, home_zongjia, home_danjia) with open(r'sh_.txt', 'w', encoding='utf8') as f: for i in home_data: f.write(''' 小區(qū)名稱:%s 小區(qū)地址:%s 小區(qū)標(biāo)簽:%s 詳情:%s 關(guān)注度:%s 總價:%s 單價:%s\r '''%i)
四、openpyxl模塊
1、簡介
- openpyxl模塊屬于第三方模塊,是一個在 python 中能夠處理 excel 文件的模塊,還有比較出名的是xlrd、xlwt 分別控制excel文件的讀寫,這倆個能夠兼容所有版本的文件。openpyxl 針對 excel 2003版本之前的兼容性可能不好 但是功能更加強大。
注意事項:
excel文件的版本及后綴
2003版本之前 excel的文件后綴是xls
2003版本之后 excel的文件后綴是xlsx、csv
2、創(chuàng)建文件相關(guān)
2、1.創(chuàng)建excel文件
關(guān)鍵詞:workbook
作用:
- 使用 openpyxl 創(chuàng)建文件。只需導(dǎo)入Workbook類
代碼用法:
導(dǎo)入模塊: form openpyxl import workbook 代碼用法: from openpyxl import Workbook wb = Workbook # 一個 excel 文件創(chuàng)建成功
2、2.創(chuàng)建工作簿
關(guān)鍵詞:cerate_sheet( )
作用:
- 使用 openpyxl 創(chuàng)可以創(chuàng)建自定義名稱的工作簿。括號里的參數(shù)是工作簿名稱,還有一個參數(shù)是工作簿的位置,也可以不寫建文件。只需導(dǎo)入Workbook類
- 可以創(chuàng)建多個工作簿,并且可按照順序排列
代碼用法:
導(dǎo)入模塊: form openpyxl import workbook 代碼用法: from openpyxl import Workbook wb = Workbook() ws1 = wb.cerate_sheet('工作簿名稱', 0)
sheet 是自動生成的
2、3.修改工作簿名稱
關(guān)鍵詞:title
作用:
- 可以更改工作簿名稱
- 通過待修改名稱工作簿‘點’的方式在后方賦予新的名稱
代碼用法:
導(dǎo)入模塊: form openpyxl import workbook 代碼用法: from openpyxl import Workbook wb = Workbook() ws1 = wb.cerate_sheet('用戶信息表', 0) ws1.title = 'user_infor'
2、4.修改工作簿顏色
關(guān)鍵詞:sheet_properties.tabColor
作用:
- 用來給工作簿背景修改顏色,需要用到RGB色域
代碼用法:
導(dǎo)入模塊: from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet('用戶信息表', 0) ws1.sheet_properties.tabColor = 'FF6666' # 將標(biāo)題背景改為指定RRGGBB顏色代碼
2、5.查看文件所有工作簿
關(guān)鍵詞:sheetname
作用:
- 查看exexl文件下所有的工作簿,返回的是一個列表
代碼用法:
導(dǎo)入模塊: from openpyxl import Workbook 代碼用法: wb = Workbook() ws1 = wb.create_sheet('uese_zhangzhang') ws2 = wb.create_sheet('user_kangkang') print(wb.sheetname) # ['user_zhangzhang', 'user_zhangzhang']
3、寫入內(nèi)容相關(guān)
3、1.寫入/修改內(nèi)容
關(guān)鍵詞:ws[]
作用:
- 可以通過工作簿'點'的方式,在后方中括號內(nèi)填寫內(nèi)容的位置,來修改內(nèi)容
代碼用法:
導(dǎo)入模塊: from openpyxl import Workbook 代碼用法: wb = Workbook() ws1 = wb.create_sheet('uese_zhangzhang') ws1['A1'] = 'kangkang' # ws1['A1'] 代表的是該表中的 A1 位置,我們可以將數(shù)據(jù)直接賦值給它
關(guān)鍵詞:cell( )
作用:
- 可以通過工作簿'點'的方式,在后方參數(shù)內(nèi)填寫內(nèi)容的位置,來修改內(nèi)容
- row:行
- colum:列
- value:值(對應(yīng)位置的數(shù)據(jù))
代碼用法:
導(dǎo)入模塊: from openpyxl import Workbook 代碼用法: wb = Workbook() ws1 = wb.create_sheet('uese_zhangzhang') ws1.cell(row = 1, column= 1, value = 'kangkang') # 在第一行,第一列,填入數(shù)值'kangkang'
3、2.一次寫入多個數(shù)據(jù)
關(guān)鍵詞:append()
作用:
- 可以一次性寫入多個數(shù)據(jù)值,通過行的方式寫入,在關(guān)鍵詞后方參數(shù)內(nèi)將數(shù)據(jù)值以列表的形式寫入
代碼用法:
導(dǎo)入模塊: from openpyxl import Workbook 代碼用法: wb = Workbook() ws = wb.cerate_sheet('user_name', 0) ws.append(['序號', '姓名', '性別', '年齡']) ws.append(['1', 'kangkang', '男', '18'])
4、讀取內(nèi)容相關(guān)
4、1.訪問多個單元格
用法:直接使用切片操作的方式
代碼用法:
x = ws['A1':'C2'] x1 = ws['C'] x2 = ws['C:D'] x3 = ws[10] x4 = ws[5:10]
4、2.獲取單元格值
關(guān)鍵詞:values
作用:
- 使用for循環(huán)的方式,可以一次獲取整行文本數(shù)據(jù)值
代碼用法:
導(dǎo)入模塊: from openpyxl import Workbook 代碼用法: wb = Wordbook() ws1 = wb.create_sheet('nser_name', 0) ws1.append(['name', 'age', 'hobby']) ws1.append(['kangkang', 18, 'read']) for i in ws1.vallue: print(i)
5、保存文件
- 當(dāng)我們編輯完文件后,就需要保存文件,同時賦予文件的名稱
關(guān)鍵詞:save( )
作用:
- 在關(guān)鍵詞后方參數(shù)內(nèi)填入文件保存的地址,同時賦予文件名
代碼用法:
wb = Workbook() wb.save('user_infor.xlsx') # balances.xlsx 是保存的路徑,也就是文件名。 # 編輯完要保存才行。
6、打開文件
前面說的是我們?nèi)绾蝿?chuàng)建文件,編輯創(chuàng)建后的文件,對創(chuàng)建的文件進行編輯。
下面所說的是我們?nèi)绾未蜷_現(xiàn)有的文件,并進行編輯
load_workbook
模塊導(dǎo)入:
from openpyxl import load_workbook
6、1.讀取工作簿數(shù)據(jù)
方式一:
from openpyxl import load_workbook wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True) ws = wb['用戶信息表'] # 拿到工作薄對象 print(ws['A1'].value) # 取出工作薄對象中 A1 位置的值
方式一:
from openpyxl import load_workbook wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True) ws = wb['用戶信息表'] print(ws.cell(row=2, column=1).value) # 通過行與列的形式來取值
方式三:(逐行讀?。?/p>
方式三(逐行讀?。? from openpyxl import load_workbook wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True) ws = wb['用戶信息表'] for row in ws.rows: # 獲取每一行的數(shù)據(jù) for data in row: # 獲取每一行中單元格的數(shù)據(jù) print(data.value) # 打印單元格的值
以上就是Python基礎(chǔ)第三方模塊requests openpyxl的詳細內(nèi)容,更多關(guān)于Python模塊requests openpyxl的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解關(guān)于Django中ORM數(shù)據(jù)庫遷移的配置
這篇文章主要介紹了詳解關(guān)于Django中ORM數(shù)據(jù)庫遷移的配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10python生成多個只含0,1元素的隨機數(shù)組或列表的實例
今天小編就為大家分享一篇python生成多個只含0,1元素的隨機數(shù)組或列表的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python基于identicon庫創(chuàng)建類似Github上用的頭像功能
這篇文章主要介紹了Python基于identicon庫創(chuàng)建類似Github上用的頭像功能,結(jié)合具體實例形式分析了identicon庫操作圖形的具體步驟與相關(guān)使用技巧,需要的朋友可以參考下2017-09-09