首頁 > 軟體

Python基礎第三方模組requests openpyxl

2022-11-05 14:00:54

一、第三方模組的下載與使用

1、什麼是第三方模組

  • 第三方模組是指別人編寫的模組
  • 第三方模組一般功能都比較強大

2、如何安裝第三方模組

方式一:pip工具

安裝方式:

1、開啟python直譯器的安裝目錄,找到Scipts目錄,該目錄下會有pip.exe的程式,這個程式就是用來安裝第三方模組的

2、將python版本對應的Scipts檔案目錄新增至系統環境變數

3、開啟cmd命令提示字元視窗,在cmd命令視窗中執行下載第三方模組的句式

下載第三方模組的句式
	pip install 模組名
下載第三方模組臨時切換倉庫
	pip install 模組名 -i 倉庫地址
下載第三方模組指定版本(不指定預設是最新版)
	pip install 模組名==版本號 -i 倉庫地址

注意事項:

我們的電腦中可能安裝了多個版本的python直譯器,每個版本中都有pip工具,在我們使用pip安裝模組時,需要下載在我們使用的版本中的pip工具中,否則下載的模組將無法執行

方式二:pycharm中下載

安裝方式:

1、在pycharm中點選左上角File

2、在下方目錄中找到Settings

3、找到Project,開啟python Interpreter

4、點選'+'號,在上方視窗內輸入想要下載的模組

5、點選Install Package,等待即可下載完成

注意事項:

1、在安裝視窗右側找到Specify versin 可選擇需要下載模組版本號

2、Manage Repositories可設定倉庫地址

3、注意事項

1、報錯並有警告資訊

WARNING: You are using pip version 20.2.1;

  • 原因在於pip版本過低 只需要拷貝後面的命令執行更 新操作即可

d:python38python.exe -m pip install --upgrade pip

  • 更新完成後再次執行下載第三方模組的命令即可

2、報錯,提示關鍵字

Timeout

  • 提示該關鍵字說明當前計算機網路不穩定,只需更換網路或等待網路穩定後下載即可

3、報錯,無關鍵字

面向百度搜尋

  • 只需拷貝報錯資訊到百度搜尋即可
  • 通常都是需要使用者提前準備好一些下載環境才可以順利下載

4、下載速度慢

pip的預設下載地址都是國外的,我們只需要切換下載地址即可

  • 關於切換下載地址的方式在上面已經說明
  • 常用下載地址

清華大學 :
    https://pypi.tuna.tsinghua.edu.cn/simple/

阿里雲:
    http://mirrors.aliyun.com/pypi/simple/

中國科學技術大學 :
    http://pypi.mirrors.ustc.edu.cn/simple/

華中科技大學:
    http://pypi.hustunique.com/

豆瓣源:
    http://pypi.douban.com/simple/

騰訊源:
    http://mirrors.cloud.tencent.com/pypi/simple

華為映象源:
    https://repo.huaweicloud.com/repository/pypi/simple/

二、網路爬蟲之requests模組

1、簡介

  • requests模組是一個第三方模組,需要在額外進行安裝
  • 它是一個用於網路請求的模組,主要用來向瀏覽器傳送請求

2、使用方法

匯入模組:

import requests

1.關鍵詞:get( )

作用:用於向瀏覽器傳送請求

程式碼用法:

url = "https://www.baidu.com"
res = requests.get(url)

2.關鍵詞:encoding

作用:指定編碼格式,針對一些古老的網站,在獲取網頁資訊的時候,不指定編碼格式的話可能會出現亂碼。不指定的情況下預設使用系統自帶的編碼環境

程式碼用法:

res = encoding = 'utf8'

3.關鍵詞:content

作用:返回的是一個原生字串,是bytes型別

程式碼用法:

print(res.content)
# 返回的是一個原生字串,是bytes型別

4.關鍵詞:text

作用:獲取字串型別的網頁資料(預設按照utf8)

程式碼用法:

print(res.text)
# 獲取字串型別的網頁資料(預設按照utf8)

5.關鍵詞:url

作用:列印請求

程式碼用法:

print(res.url)

6.關鍵詞:status_code

作用:列印狀態碼

程式碼用法:

print(res.staus_code)

三、網路爬蟲實戰

1、爬取鏈家網站房屋資訊

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 href="https://sh.lianjia.com/ershoufang/.*?/" 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('''
                小區名稱:%s
                小區地址:%s
                小區標籤:%s
                詳情:%s
                關注度:%s
                總價:%s
                單價:%sr
                '''%i)

四、openpyxl模組

1、簡介

  • openpyxl模組屬於第三方模組,是一個在 python 中能夠處理 excel 檔案的模組,還有比較出名的是xlrd、xlwt 分別控制excel檔案的讀寫,這倆個能夠相容所有版本的檔案。openpyxl 針對 excel 2003版本之前的相容性可能不好 但是功能更加強大。

注意事項:

excel檔案的版本及字尾

2003版本之前 excel的檔案字尾是xls

2003版本之後 excel的檔案字尾是xlsx、csv

2、建立檔案相關

2、1.建立excel檔案

關鍵詞:workbook

作用:

  • 使用 openpyxl 建立檔案。只需匯入Workbook類

程式碼用法:

匯入模組:
	form openpyxl import workbook
程式碼用法:
	from openpyxl import Workbook
    wb = Workbook
	 # 一個 excel 檔案建立成功

2、2.建立工作簿

關鍵詞:cerate_sheet( )

作用:

  • 使用 openpyxl 創可以建立自定義名稱的工作簿。括號裡的引數是工作簿名稱,還有一個引數是工作簿的位置,也可以不寫建檔案。只需匯入Workbook類
  • 可以建立多個工作簿,並且可按照順序排列

程式碼用法:

匯入模組:
	form openpyxl import workbook
程式碼用法:
	from openpyxl import Workbook
	wb = Workbook()
	ws1 = wb.cerate_sheet('工作簿名稱', 0)

sheet 是自動生成的

2、3.修改工作簿名稱

關鍵詞:title

作用:

  • 可以更改工作簿名稱
  • 通過待修改名稱工作簿‘點’的方式在後方賦予新的名稱

程式碼用法:

匯入模組:
	form openpyxl import workbook
程式碼用法:
	from openpyxl import Workbook
	wb = Workbook()
	ws1 = wb.cerate_sheet('使用者資訊表', 0)
	ws1.title = 'user_infor'

2、4.修改工作簿顏色

關鍵詞:sheet_properties.tabColor

作用:

  • 用來給工作簿背景修改顏色,需要用到RGB色域

程式碼用法:

匯入模組:
	from openpyxl import Workbook
    wb = Workbook()
    ws1 = wb.create_sheet('使用者資訊表', 0)
    ws1.sheet_properties.tabColor = 'FF6666' 
    # 將標題背景改為指定RRGGBB顏色程式碼

2、5.檢視檔案所有工作簿

關鍵詞:sheetname

作用:

  • 檢視exexl檔案下所有的工作簿,返回的是一個列表

程式碼用法:

匯入模組:
	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、寫入內容相關

3、1.寫入/修改內容

關鍵詞:ws[]

作用:

  • 可以通過工作簿'點'的方式,在後方中括號內填寫內容的位置,來修改內容

程式碼用法:

匯入模組:
	from openpyxl import Workbook
程式碼用法:
	wb = Workbook()
	ws1 = wb.create_sheet('uese_zhangzhang')
	ws1['A1'] = 'kangkang'
	# ws1['A1'] 代表的是該表中的 A1 位置,我們可以將資料直接賦值給它

關鍵詞:cell( )

作用:

  • 可以通過工作簿'點'的方式,在後方引數內填寫內容的位置,來修改內容
  • row:行
  • colum:列
  • value:值(對應位置的資料)

程式碼用法:

匯入模組:
	from openpyxl import Workbook
程式碼用法:
	wb = Workbook()
	ws1 = wb.create_sheet('uese_zhangzhang')
	ws1.cell(row = 1, column= 1, value = 'kangkang')
	# 在第一行,第一列,填入數值'kangkang'

3、2.一次寫入多個資料

關鍵詞:append()

作用:

  • 可以一次性寫入多個資料值,通過行的方式寫入,在關鍵詞後方引數內將資料值以列表的形式寫入

程式碼用法:

匯入模組:
	from openpyxl import Workbook
程式碼用法:
	wb = Workbook()
	ws = wb.cerate_sheet('user_name', 0)
	ws.append(['序號', '姓名', '性別', '年齡'])
	ws.append(['1', 'kangkang', '男', '18'])

4、讀取內容相關

4、1.存取多個單元格

用法:直接使用切片操作的方式

程式碼用法:

x = ws['A1':'C2']
x1 = ws['C']
x2 = ws['C:D']
x3 = ws[10]
x4 = ws[5:10]

4、2.獲取單元格值

關鍵詞:values

作用:

  • 使用for迴圈的方式,可以一次獲取整行文字資料值

程式碼用法:

匯入模組:
	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、儲存檔案

  • 當我們編輯完檔案後,就需要儲存檔案,同時賦予檔案的名稱

關鍵詞:save( )

作用:

  • 在關鍵詞後方引數內填入檔案儲存的地址,同時賦予檔名

程式碼用法:

wb = Workbook()
wb.save('user_infor.xlsx') 
# balances.xlsx 是儲存的路徑,也就是檔名。
# 編輯完要儲存才行。

6、開啟檔案

前面說的是我們如何建立檔案,編輯建立後的檔案,對建立的檔案進行編輯。

下面所說的是我們如何開啟現有的檔案,並進行編輯

load_workbook

模組匯入:

from openpyxl import load_workbook

6、1.讀取工作簿資料

方式一:

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)  # 通過行與列的形式來取值

方式三:(逐行讀取)

方式三(逐行讀取)
from openpyxl import load_workbook
wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True)
ws = wb['使用者資訊表']
for row in ws.rows:  # 獲取每一行的資料
	for data in row:  # 獲取每一行中單元格的資料
		print(data.value)  # 列印單元格的值

以上就是Python基礎第三方模組requests openpyxl的詳細內容,更多關於Python模組requests openpyxl的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com