破外女出血视频全过程,四川bbb搡bbb爽爽视频,久久久免费精品re6,国产 精品一区二区三区

您正在訪問的位置:首頁>資訊 > 黃金資訊

今日金價小程序(今日金價查詢助手)

編輯:名品導購 發布于2023-09-04 19:11
導讀: 學會使用Python工具來爬取某些網站上的信息,對于平時工作會有很大的幫助,它不僅能極大地提高工作效率,而且還能實現自動...

學會使用Python工具來爬取某些網站上的信息,對于平時工作會有很大的幫助,它不僅能極大地提高工作效率,而且還能實現自動化辦公。那么,在這里將向大家介紹一下怎樣采用Python爬取上海黃金交易所網站上早盤、午盤的金價與銀價,并實現每日定時自動化獲取。

一、背景描述

對于貴金屬行業,有時候銷售人員想知道每日黃金或銀的價格,平時一般是通過打開上海黃金交易所網站 (https://www.sge.com.cn/) 進行查看。但是,這樣是需要人為地每天去打開網站查看了才知,那么,有沒有辦法可以自動地獲取到上面的金價或銀價,然后在公司網站上自動顯示金價或銀價的結果呢?

答案肯定是可以的,下面開始一步一步教大家如何來實現這個功能。

二、Python高版本打包生成的執行文件在服務器上運行出錯

首先,先解決Pytho版本問題,代碼留到后面才講,本人之前采用的是python3.9 64位,這是一個較高的版本,通過pyinstaller -F -w goldprice.py 進行打包生成的goldprice.exe執行文件,在本機下面運行無誤。但是將這個文件拷至公司內網服務器上運行就出錯!error顯示為:

Fatal error in launcher:Unable to create process using ;

即無法啟動此程序,查詢此錯誤的原因為計算機中丟失api-ms-win-core-path-11-1-0.dll這個文件, 如圖1所示。

圖1 服務器上運行生成的執行文件時出錯

根據錯誤提示,分別通過下面兩個方法進行了處理,但未成功,兩種方法分別說明如下:

1、首先嘗試一下最簡單的方案,在網上搜索下載api-ms-win-crt-runtime-l1-1-0.dll文件。下載完成后將api-ms-win-crt-runtime-l1-1-0.dll文件復制到服務器上,位置于C:\Windows\SysWOW64(64位目錄)或C:\Windows\System32(32位目錄)。但是,拷過去時結果發現本身系統就有這個dll文件,故可以判斷并非缺少這個dll文件的原因造成。

2、根據一個類似問題的網站上介紹,需要下載VC的應用程序(包含api-ms-win-core-path-11-1-0.dll的),即 vc_redist.x64.exe 這個應用安裝文件來進行安裝 , 但是,安裝后問題依舊。

因此,通過以上簡單的處理后,發現問題無法解決,該怎么辦?

三、問題分析

根據前面生成的執行文件,僅在本機上能正常運行,但放至服務器上運行出錯,顯然不行。畢竟,這個程序是要部署在服務器上來使用的,那么,通過本機的運行環境與服務器運行環境進行對比,得到如下信息:

1、服務器采用的系統是windows2008 R2 64位系統,已經算是非常老的系統。

2、python生成的執行程序在我本機運行環境是基于win10 professional版本。

3、Python版本是3.9版本且為64位。

因此,懷疑是因為打包生成exe文件的python版本過高,而導致生成的exe文件無法獨立在原先較老的系統上運行。那么,考慮采取較低版本的python來對其重新打包生成。

四、問題解決

1、下載安裝舊版本Python

下載Python3.8.5的32位版本。如圖4.1所示:

圖4.1 Python3.8.5 32位

下載完成后,開始進行安裝,我是將其安裝在本機的D:\python385目錄下面

2、配置Python環境

將Python3.8.5版本安裝成功后,打開pycharm。打開獲取金價程序 GoldPrice.py, 在pycharm的菜單上,點擊file—>Settings–>Project:python–>Python Interpreter. 在Project Interpreter: 下拉框右邊,點擊“修改”按鈕,如下圖4.2所示.

圖4.2 修改按鈕圖標

在彈出的下拉菜單中,點擊“Add…" ,如下圖4.3所示

圖4.3 點擊Add界面

在彈出的畫面,如圖4.4所示. 選擇 Exsting environment

圖4.4 選擇Existing Interpreter

選擇好Python3.8.5后,下面圖4.5中紅色框住的部分一開始是沒有安裝的。因此,為了金價爬取程序正常運行,需要先對相關庫或組件進行安裝,點擊圖4.5中右邊的”+“號進行搜索庫并安裝。

圖4.5 點擊+號進行組件或庫的搜索安裝

在彈出的窗體,如圖4.6所示,輸入要安裝的組件或庫名稱,比如:requests, 直接輸入 requests, 此時,下面會顯示找到的庫文件清單,光標定位到所需要安裝的庫文件上,然后點擊左下面的"Install Package" 按鈕,即可開始安裝組件。

圖4.6 庫的查找與安裝

采用相同的方法,依次將需要安裝的庫進行安裝,之后,在圖4.7中先點擊Apply,再點擊OK按鈕。

圖4.7 安裝后點擊Apply及OK按鈕

接下來,創建一個打包的批處理文件. 如下圖4.8所示.

打包批處理文件名為: scexe2.bat,在其中輸入調用的python版本(python3.8.5)的pyinstaller文件來對金價獲取程序goldprice.py進行打包。

圖4.8 打包批處理文件

批處理文件scexe2.bat寫好后保存在D:\目錄下,直接雙擊scexe2.bat, 即可開始進行打包,過一會兒就生成了exe文件,默認在c:\dist 目錄下面,如圖4.9所示.

圖4.9 打包生成好的exe文件.

將生成好的exe文件拷至遠程主機中。比如:遠程機中d:\eis目錄下,如圖4.10所示

圖4.10 將生成的exe文件拷至遠程服務器中.

五、測試生成的打包程序是否正常

在遠程服務器上,運行cmd,進入d:\eis,運行goldprice.exe, 如圖5.1所示。可見程序運行后無誤

圖5.1 運行打包后的exe文件.

這一步無誤后,我們就可以在服務器上,點擊開始–>任務計劃程序,之后創建基本任務,輸入任務名稱:例如:GetGoldPrice (任意取名,但最好方便記憶), 在希望任務何時開始時,選擇“每天”,之后點擊“下一步”,設置每天的開始時間,此處將金價獲取時間設置早上8:40,在接下來是啟動程序,點擊下一步即可完成。

注意:在設置過程中的細節。希望任務觸發時的條件,請選擇“不管用戶是否登錄都要運行”

下面是設置好后的任務計劃,如圖5.2所示。

圖5.2 設置好的任務計劃

至此,python打包生成的exe文件在遠程服務器上成功部署并設置每日8:40及13:30兩個時間段定時自動獲取。

六、Python爬蟲代碼

終于到了Python爬取上海黃金交易所網站上數據的核心代碼,廢話少說,直接貼代碼,本人經過調試運行無誤。

##爬上海黃金網站上的金價信息import requestsfrom bs4 import BeautifulSoupfrom bs4 import BeautifulSoup as bfimport pymssqlimport refrom lxml import etreefrom urllib.request import urlopenurl = 'https://www.sge.com.cn/' ## 上海黃金網##反爬偽裝##User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4315.4 Mobile Safari/537.36myheader = {'User-Agent': 'Chrome/88.0.4315.4'}result = requests.get(url, headers=myheader)html = result.textsoup = BeautifulSoup(html, 'lxml')# #頁面解析# BeautifulSoup# print(soup.find_all('div',class_='touziList fs16')) ## soup.find('a',attrs={'class':'fleft'})gold_list = soup.find_all('div', class_='touziList fs16')#print('soup=',gold_list[0])# 金#_zaopangoldprice=soup.find('span',attrs={'class':'colorRed fs20'}).text ## 上海金早盤價(元/克) —值_zaopangoldprice=soup.select("#dataStatistics0 .colorRed")[0].text# print('_zaopangoldprice=',_zaopangoldprice)_wupangoldprice=soup.select("#dataStatistics0 .colorRed")[1].text ## 上海金午盤價(元/克) —值# print('_wupangoldprice=',_wupangoldprice)# 銀_zaopanSilverprice=soup.select("#dataStatistics1 .colorRed")[0].text ## 上海銀早盤價(元/克) —值# print('_zaopanSilverprice=',_zaopanSilverprice)_wupanSilverprice=soup.select("#dataStatistics1 .colorRed")[1].text ## 上海銀午盤價(元/克) —值# print('_wupanSilverprice=',_wupanSilverprice)goldpricedesc = ""for nu in gold_list:goldpricedesc = goldpricedesc + str(nu)# 將爬取的數據寫入到SQL表中db = pymssql.connect(host=".", user="dsds", password="***s", database="gold", charset='utf8')cursor = db.cursor()sql = "insert into GoldPriceList(GoldPriceDesc,zaopangoldprice,wupangoldprice,zaopansilverprice,wupansilverprice,Remark) values('"+goldpricedesc+"','"+_zaopangoldprice+"','"+_wupangoldprice+"','"+_zaopanSilverprice+"','"+_wupanSilverprice+"',N'來源于上海黃金交易所')"# sql = "insert into GoldPriceList(GoldPriceDesc,Remark) values('" + goldpricedesc + "',N'來源于上海黃金交易所')"cursor.execute(sql)db.commit()db.close()# print('OK!從上海金價網獲取當日金價數據完成!')

將以上代碼保存為goldprice.py,打開pycharm,調用python3.8.5編譯器來進行調試運行。

運行成功后,再通過cmd轉入命令行狀態下,執行命令:

pyinstaller -F -w goldprice.py (回車)

則自動進行打包,最終生成goldprice.exe可執行文件。

七:自動爬取數據到SQL數據庫的結果

通過以上自動化定時設置,每天兩個時段就會自動地從上海黃金交易所網站上爬取早午盤數據,無須人為干預,將爬取到的數據自動地插入到服務器數據庫中。如圖7.1所示.

圖7.1 每天定時自動爬取的金銀早午盤數據

至此,一個完整的Python自動爬取上海黃金交易所網站上的早午盤金銀價格數據,就這樣圓滿介紹完畢。

如果有不明白的地方或需要源碼的朋友,可以關注我并在評論區下方進行留言,我將一一回復,謝謝!

名品導購網(www.cctv-ss.com)ICP證號: 蘇ICP備2023000612號-5 網站版權所有:無錫錫游互動網絡科技有限公司

CopyRight 2005-2023 版權所有,未經授權,禁止復制轉載。郵箱:mpdaogou_admin@163.com

主站蜘蛛池模板: 盈江县| 将乐县| 彩票| 青海省| 阳新县| 四会市| 安陆市| 奇台县| 广灵县| 宁化县| 安平县| 绥芬河市| 浦北县| 乌苏市| 枣阳市| 竹山县| 福建省| 富锦市| 德兴市| 乐安县| 龙口市| 确山县| 黄梅县| 建始县| 临泉县| 东乌珠穆沁旗| 河池市| 乐业县| 黄石市| 阜平县| 景宁| 泾源县| 武胜县| 枣阳市| 桃园市| 临洮县| 揭西县| 郓城县| 牡丹江市| 新龙县| 上饶市|