高雅婷 劉雅舉
摘? 要:隨著網(wǎng)上購物的盛行,淘寶、京東、拼多多等互聯(lián)網(wǎng)商業(yè)巨頭也展開了激烈的競(jìng)爭(zhēng)。收集商品、評(píng)論及銷量數(shù)據(jù)以及對(duì)各種商品及用戶的消費(fèi)場(chǎng)景進(jìn)行分析成了必不可少的環(huán)節(jié)。然而傳統(tǒng)的人工收集并整理數(shù)據(jù)顯然效率不足以滿足當(dāng)下各大公司以及其他相關(guān)產(chǎn)業(yè)對(duì)這些數(shù)據(jù)的需要。近年來Python爬蟲技術(shù)的逐漸成熟,給網(wǎng)購數(shù)據(jù)收集并整理帶來了極大的便利。
關(guān)鍵詞:網(wǎng)購;Python;pip;爬蟲技術(shù)
中圖分類號(hào):TP311.1? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2021)16-0026-06
Online Shopping Data Crawling Based on Python
GAO Yating, LIU Yaju
(Hebei Agricultural University, Cangzhou? 061000, China)
Abstract: With the popularity of online shopping, Taobao, Jingdong, Pinduoduo and other internet business giants also launches a fierce competition. Collecting product, review, and sales data, as well as analyzing the consumption scenarios of various products and users, has become an essential links. However, the traditional manual collection and sorting of data is obviously not efficient enough to meet the needs of companies and other related industries. In recent years, the gradual maturity of Python crawler technology has brought great convenience to the collection and sorting of online shopping data.
Keywords: online shopping; Python; pip; crawler technology
0? 引? 言
我們會(huì)發(fā)現(xiàn)我們常用的購物軟件如:淘寶、京東等總是能給我們推薦符合我們興趣的商品。這就是因?yàn)樗麄兪占讼M(fèi)者的POI(興趣點(diǎn))[1],通過調(diào)用數(shù)據(jù)庫來分析到每個(gè)消費(fèi)者的消費(fèi)偏好,進(jìn)而給消費(fèi)之提供感興趣的商品。各大網(wǎng)購公司,以及相關(guān)產(chǎn)業(yè)都需要消費(fèi)者的消費(fèi)數(shù)據(jù)如某商品的銷量以及評(píng)論信息、各種商品及用戶的消費(fèi)場(chǎng)景等數(shù)據(jù)來進(jìn)行數(shù)據(jù)分析。本文將以基于Python的網(wǎng)上購物數(shù)據(jù)-淘寶商品銷量數(shù)據(jù)爬取為例進(jìn)行分析。
1? Pyhton爬蟲技術(shù)概述
爬蟲的概念就是一段自動(dòng)抓取互聯(lián)網(wǎng)信息的程序,從互聯(lián)網(wǎng)上抓取對(duì)于我們有價(jià)值的信息[2],其根本原理是遞歸算法。爬蟲技術(shù)原本是應(yīng)用于搜索引擎的,隨著程序員前輩們的改進(jìn),目前已經(jīng)成為一項(xiàng)非常通用且實(shí)用的數(shù)據(jù)抓取技術(shù)了。能開發(fā)爬蟲技術(shù)的語言有很多種,但是由于Python語言的簡(jiǎn)單高效,人們更習(xí)慣用Python來開發(fā)爬蟲技術(shù),所以Python爬蟲技術(shù)已經(jīng)成為當(dāng)下主流的爬蟲技術(shù)。
python語言具有非常高的可行性和有效性,不僅保證了網(wǎng)絡(luò)爬蟲框架實(shí)現(xiàn)效果,還提高了網(wǎng)絡(luò)爬蟲系統(tǒng)的運(yùn)行性能,為用戶帶來良好的使用體驗(yàn)[3]。
Python爬蟲架構(gòu)主要由5個(gè)部分構(gòu)成,分別是:調(diào)度器、URL管理器、網(wǎng)頁下載器、網(wǎng)頁解析器、應(yīng)用程序等,如圖1所示。
2? 實(shí)現(xiàn)過程
2.1? 基礎(chǔ)環(huán)境配置
Python爬取淘寶銷量數(shù)據(jù)涉及使用selenium庫中的Webdriver操作GOOGLE瀏覽器進(jìn)行登陸、搜索、點(diǎn)擊按銷量從高到低排序、獲取頁面內(nèi)容并使用beautiful庫解析的過程[4]。
本機(jī)環(huán)境概述:Pyhton版本為Python3.10.0;編輯器為PyCharm;瀏覽器使用Google Chrome 95.0.4638.54;驅(qū)動(dòng)器版本為95.0.4638.17;
Python爬蟲技術(shù)的前期準(zhǔn)備是非常煩瑣的,但是任何一個(gè)環(huán)節(jié)出現(xiàn)問題,都會(huì)導(dǎo)致后期無法順利運(yùn)行我們的爬蟲代碼。
首先是檢查我們的Python3.10是否安裝完成并且配置好了路徑PATH。最簡(jiǎn)單的方式就是通過cmd命令行來查看,我們?cè)诿钚兄休斎雙ython回車。如出現(xiàn)python的版本號(hào)信息,則證明安裝配置成功(圖2為本機(jī)配置成功顯示),否則未成功。
一般錯(cuò)誤就是未配置路徑PATH??梢栽凇按穗娔X”右鍵,選擇“屬性”,然后選擇“高級(jí)系統(tǒng)設(shè)置”進(jìn)行手動(dòng)配置PATH。;亦可卸載,重新安裝時(shí)勾選 “Add Python 3.10 to PATH”選項(xiàng)。
在Python中需要運(yùn)用多種多樣的函數(shù)就得下載相應(yīng)的庫。下載庫便需要用到“pipinstall [庫名稱]”的命令。這便首先需要pip文件配置成功。pip文件的在最新版本的python中是已經(jīng)配置好了的,在python的安裝路徑下的script文件夾內(nèi)。我們可以通過打開python的安裝路徑的script文件夾查看,我們也可以通過cmd命令行來查詢,如果我們輸入pip回車,出現(xiàn)如圖3所示的界面,則證明我們已經(jīng)完成pip的安裝。
我們不僅需要python的命令行程序,還要安裝python的圖形化軟件PyCharm來方便我們編譯運(yùn)行我們的代碼,PyCharm如圖4所示。
我們需要用到的很多函數(shù)都要來源于不同的庫,本次簡(jiǎn)單的爬蟲代碼要用到的庫有selenium庫、requests庫。安裝指令分別為:
(1)1pip install selenium
(2)pip install requests
圖5為安裝selenium示例(安裝requests庫同理)。
Selenium庫安超時(shí)現(xiàn)象時(shí)常出現(xiàn),因?yàn)閟elenium庫較為龐大,建立連接時(shí)間過長(zhǎng)而未安裝成功的現(xiàn)象比較常見,所以我們可以選擇安裝時(shí)指定超時(shí)時(shí)間例如指令:pip --default-timeout=100 install -U selenium==2.53.6[5] 。
注意:上面指定了selenium的版本號(hào)為2.53.6,可以不指定版本號(hào),直接寫:
pip --default-timeout=100 install -U selenium即可。
圖6是本次實(shí)驗(yàn)所需的所有庫。
2.2? 確定訪問接口
我們以淘寶網(wǎng)搜索手機(jī)為例,如圖7所示。
我們可以看到非常豐富的信息,比如商品價(jià)格、店鋪名稱、手機(jī)型號(hào)等諸多信息我們本次實(shí)驗(yàn)想要提取的信息是商品銷量信息。第一步就是確定訪問接口。
我們進(jìn)行翻頁處理操作,如圖8~圖10所示。
我們觀察規(guī)律易發(fā)現(xiàn)淘寶的搜索接口為:https://s.taobao.com/search?q=。由曲線擬合可得:頁數(shù)的跳轉(zhuǎn)與參數(shù)s呈正相關(guān),s=(頁數(shù)-1)×48。
我們預(yù)測(cè),第五頁的地址為:https://s.taobao.com/search?q=手機(jī)&p4ppushleft=5%2C48&s=192,進(jìn)行測(cè)試可正確到達(dá)第五頁,如圖12所示,證明我們曲線擬合結(jié)果正確。
2.3? 代碼編寫
編輯器使用Python編輯器PC最新版。爬蟲代碼的核心就是要抓取頁面源碼的關(guān)鍵字信息,頁面源碼一般都為HTML格式,所以抓取頁面關(guān)鍵字的任務(wù)交給getHTMLText()函數(shù)最合適不過了,如圖13所示。但是使用getHTMLText()函數(shù)是需要安裝requests庫的,我們?cè)谏衔闹幸呀?jīng)解釋過了requests庫的安裝方法,在cmd命令行中輸入pipinstallrequests指令即可。
完整的代碼截圖以及運(yùn)行結(jié)果如圖14與圖15所示。
3? 研究過程中遇到的困難
3.1? pipinstall指令失效
當(dāng)我利用pipinstallelenium命令來在下載elenium插件的時(shí)候,遇到問題全片紅色警告問題,在網(wǎng)上查閱了好多資料說可能是安裝版本過高的原因,但是我安裝了較低較穩(wěn)定的版本也無法成功解決此報(bào)錯(cuò)警告。于是拖延了好幾天進(jìn)度,終于有一天在某論壇上看到了有任何我遇到了同樣的問題,改作者將本機(jī)的代理系統(tǒng)關(guān)閉就解決了情況此參照實(shí)驗(yàn),發(fā)現(xiàn)果然是代理服務(wù)器的問題。關(guān)閉即可用“pip install **”指令來進(jìn)行安裝庫或者插件了,如圖16所示。
3.2? import requests導(dǎo)包出錯(cuò)
導(dǎo)致問題的原因:未安裝requests庫,想要安裝,但是一直安裝失敗。后來發(fā)現(xiàn)是自己斷網(wǎng)了,需要在聯(lián)網(wǎng)狀態(tài)下安裝。解決辦法:聯(lián)網(wǎng)下安裝成功。
4? 結(jié)? 論
本次研究,僅僅以python爬蟲爬取淘寶“手機(jī)”首頁銷量數(shù)據(jù)的簡(jiǎn)單案例展示了python爬蟲技術(shù)的強(qiáng)大。Python爬蟲技術(shù)在網(wǎng)上購物數(shù)據(jù)爬取方面的技術(shù)已經(jīng)趨于成熟,但是我們也只能爬取網(wǎng)站上這些公示的信息數(shù)據(jù),不可以爬取消費(fèi)者或者商家的隱私數(shù)據(jù),除此之外我們亦不能爬取更多敏感非法數(shù)據(jù)。
爬蟲技術(shù)的逐步成熟,給人們帶來便利的同時(shí),也引來了一些爭(zhēng)論。有些不法分子利用爬蟲技術(shù)非法搜集私密信息也對(duì)社會(huì)造成一定影響;國家知識(shí)產(chǎn)權(quán)局官網(wǎng)2020年發(fā)布的關(guān)于知識(shí)產(chǎn)權(quán)保護(hù)文本就完全可以應(yīng)用Python爬蟲技術(shù)進(jìn)行爬取數(shù)據(jù)保護(hù)知識(shí)產(chǎn)權(quán)?,F(xiàn)在看來只對(duì)以對(duì)爬蟲技術(shù)的使用加以約束,其造福社會(huì)的力度是遠(yuǎn)遠(yuǎn)大于其帶來的負(fù)面影響的。Python爬蟲技術(shù)的應(yīng)用已經(jīng)越來越廣泛,現(xiàn)在已經(jīng)應(yīng)用于商品銷量數(shù)據(jù)爬取、消費(fèi)者消費(fèi)場(chǎng)景收集分析、知識(shí)產(chǎn)權(quán)保護(hù)、招聘信息匯總、國家社科基金項(xiàng)目爬蟲等多項(xiàng)領(lǐng)域,接下來必將會(huì)滲透到我們生活的各個(gè)領(lǐng)域,成為我們解放傳統(tǒng)手工信息整理的救星。但是無論如何我們都應(yīng)當(dāng)時(shí)刻謹(jǐn)記:互聯(lián)網(wǎng)并非法外之地。
參考文獻(xiàn):
[1] 李霖,楊蕾.公眾參與的興趣點(diǎn)數(shù)據(jù)有效性效驗(yàn)方法 [J].測(cè)繪科學(xué),2015,40(7): 98-103.
[2] 菜鳥教程.Python 爬蟲介紹 [EB/OL].[2021-04-26].https://www.runoob.com/w3cnote/python-spider-intro.html.
[3] 吳道君. 大數(shù)據(jù)背景python在網(wǎng)絡(luò)爬蟲框架中的應(yīng)用 [J]. 科學(xué)技術(shù)創(chuàng)新,2021(21): 97-99.
[4] pennykoon.python爬取淘寶銷量數(shù)據(jù) [EB/OL].[2021-04-26].https://blog.csdn.net/pennykoon/article/details/112150688.
[5] weixin_34199405.windows使用pip安裝selenium報(bào)錯(cuò)問題 [EB/OL].[2021-04-26].https://blog.csdn.net/weixin_34199405.
作者簡(jiǎn)介:高雅婷(2000—),女,漢族,河北保定人,本科在讀,研究方向:Python爬蟲。