姜慧梅
摘 要:網(wǎng)絡(luò)爬蟲(chóng)技術(shù)是一門非常實(shí)用、易學(xué)、高效、讓人產(chǎn)生成就感的技術(shù)。在電子商務(wù)高速發(fā)展的時(shí)代如何利用爬蟲(chóng)技術(shù)幫助人們?nèi)?、有效、精確地得到有價(jià)值的數(shù)據(jù),定時(shí)搶購(gòu)某種商品,利用網(wǎng)絡(luò)爬蟲(chóng)自動(dòng)地瀏覽電子商務(wù)網(wǎng)站中的信息,精準(zhǔn)制定自己的要求,快速查詢。
關(guān)鍵詞:網(wǎng)絡(luò)爬蟲(chóng);數(shù)據(jù);電子商務(wù)
0引言
在信息高速發(fā)展的大數(shù)據(jù)時(shí)代,互聯(lián)網(wǎng)的信息數(shù)據(jù)蘊(yùn)含著巨大的商業(yè)價(jià)值。如何充分挖掘信息數(shù)據(jù)的潛在價(jià)值,幫助人們?cè)陔娮由虅?wù)網(wǎng)站上找到理想的商品,更便宜的生活用品,幫助企業(yè)找到隱藏著巨大商業(yè)價(jià)值的數(shù)據(jù),在眾多的數(shù)據(jù)中如何挑選出有價(jià)值的數(shù)據(jù),成為解決關(guān)鍵問(wèn)題的數(shù)據(jù)支撐。
本文是利用Python語(yǔ)言編寫網(wǎng)絡(luò)爬蟲(chóng)程序,可以自動(dòng)瀏覽電子商務(wù)網(wǎng)站中的商品信息,然后根據(jù)制定的規(guī)則下載和提取商品相關(guān)信息和商品圖片。
1網(wǎng)絡(luò)爬蟲(chóng)的相關(guān)技術(shù)
1.1什么是網(wǎng)絡(luò)爬蟲(chóng)
網(wǎng)絡(luò)爬蟲(chóng)也可以稱為網(wǎng)頁(yè)蜘蛛,或是網(wǎng)絡(luò)機(jī)器人,可以按照指定的搜索查詢?cè)O(shè)置規(guī)則,程序?qū)崿F(xiàn)自動(dòng)地下載目標(biāo)網(wǎng)頁(yè),抓取網(wǎng)站的相關(guān)文字信息或者圖片信息,從而使得用戶能更快的檢索到所需要的信息,目前爬蟲(chóng)技術(shù)廣泛用于互聯(lián)網(wǎng)搜索引擎或其他類似網(wǎng)站,以便獲取目標(biāo)網(wǎng)站的更新內(nèi)容和搜索數(shù)據(jù)的方式[1]。
1.2 HTTP請(qǐng)求
在Python中實(shí)現(xiàn)HTTP請(qǐng)求主要有兩個(gè)庫(kù)進(jìn)行調(diào)用。第一個(gè)庫(kù)是Urllib庫(kù),第二個(gè)庫(kù)是Requests庫(kù),這兩種實(shí)現(xiàn)HTTP請(qǐng)求的庫(kù)中,使用Requests庫(kù)最簡(jiǎn)單,功能比較全面。Requests庫(kù)是用Python語(yǔ)言編寫的,調(diào)用Requests庫(kù)節(jié)約編程工作,簡(jiǎn)單易調(diào)用,可以滿足HTTP的測(cè)試需求。
1.3 爬蟲(chóng)框架
在Python中,有很多的爬蟲(chóng)框架,常見(jiàn)的Python爬蟲(chóng)框架主要有Pyspider框架、Scrapy框架、Cola框架等,本文采用Scrapy。
使用ScrapyStartprojectpachong1生成一個(gè)爬蟲(chóng)項(xiàng)目,可以看到項(xiàng)目生成的爬蟲(chóng)文件目錄,文件目錄介紹如下:
(1)在項(xiàng)目文件的根目錄下,其中scrapy.cfg文件是項(xiàng)目配置文件,。
(2)在根目錄下存儲(chǔ)的item.py是保存爬取數(shù)據(jù)容器,需要爬取什么數(shù)據(jù),在這里進(jìn)行定義。
(3)在根目錄下存儲(chǔ)的pipelines.py文件,可以保存爬取的數(shù)據(jù)到數(shù)據(jù)庫(kù)里。
(4)在根目錄下存儲(chǔ)的middlewares.py文件,主要用來(lái)對(duì)所發(fā)出爬蟲(chóng)的請(qǐng)求、收到的響應(yīng)和spider做全局性的自定義設(shè)置。
(5)在根目錄下存儲(chǔ)的setting.py文件,是爬蟲(chóng)框架的設(shè)置文件。
(6) 在根目錄下存儲(chǔ)的spiders文件夾,存放編寫的爬蟲(chóng)代碼文件和下載的網(wǎng)頁(yè)文件。
1.4動(dòng)態(tài)網(wǎng)頁(yè)爬取方法
電子商務(wù)網(wǎng)店大部分都是動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì),采用AJAX技術(shù),通過(guò)后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,實(shí)現(xiàn)網(wǎng)頁(yè)異步更新,這樣可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對(duì)網(wǎng)頁(yè)的局部?jī)?nèi)容進(jìn)行更新[2]。
(1)加載網(wǎng)頁(yè),查看在URL不變的情況下,未刷新該頁(yè)面,查看是否能夠加載新的網(wǎng)頁(yè)內(nèi)容信息。
(2)所用的爬取網(wǎng)頁(yè)源碼結(jié)構(gòu)與顯示并不相同。
2網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)設(shè)計(jì)
2.1電子商務(wù)網(wǎng)站爬蟲(chóng)的功能
在電子商務(wù)網(wǎng)站中,可以利用網(wǎng)絡(luò)爬蟲(chóng)有效抓取商品標(biāo)題、貨號(hào)編號(hào)及商品圖片并將其存入本地?cái)?shù)據(jù)庫(kù)中。由于電子商務(wù)網(wǎng)站爬蟲(chóng)需要抓取的網(wǎng)站頁(yè)面對(duì)應(yīng)的URL地址不是固定的,而是在時(shí)刻變化的,因此,在爬蟲(chóng)抓取網(wǎng)站URL地址的過(guò)程中需要特別注意對(duì)URL地址的訪問(wèn)方式及記錄去重[3]。
2.2網(wǎng)絡(luò)爬蟲(chóng)基本流程
利用Python技術(shù)進(jìn)行電子商務(wù)網(wǎng)站爬蟲(chóng)的基本工作流程設(shè)置如下:
(1)首先,把要進(jìn)行爬蟲(chóng)網(wǎng)絡(luò)中,選取一些要進(jìn)行爬蟲(chóng)的種子URL;
(2)然后把URL存儲(chǔ)在待抓取URL隊(duì)列中;
(3)讀取URL隊(duì)列中,將目標(biāo)網(wǎng)頁(yè)下載下來(lái),存在本地文件夾,將這些已經(jīng)保存過(guò)的URL地址放入已經(jīng)抓取的URL隊(duì)列。
(4)分析下載模塊傳過(guò)來(lái)的網(wǎng)頁(yè)數(shù)據(jù),提取出感興趣的數(shù)據(jù)。
(5)在調(diào)度模塊里,可以把接收到的網(wǎng)頁(yè)URL數(shù)據(jù)進(jìn)行模塊解析。
(6)整個(gè)網(wǎng)站爬蟲(chóng)系統(tǒng)抓取URL地址隊(duì)列,直到循環(huán)結(jié)束。
(7)最后可以進(jìn)行整理下載的數(shù)據(jù)信息,并存入數(shù)據(jù)庫(kù)。
(8)根據(jù)爬取結(jié)果從數(shù)據(jù)庫(kù)中進(jìn)行讀取,挑選出有價(jià)值的商品信息和商品圖片。
3 電子商務(wù)網(wǎng)站爬蟲(chóng)實(shí)現(xiàn)
3.1爬蟲(chóng)代碼
使用CrawlSpider根據(jù)URL規(guī)則爬取是一個(gè)非常好的方法,可以使代碼非常簡(jiǎn)潔。
第一步,生成項(xiàng)目,可以使用Crawl模版生成爬蟲(chóng)Spider.,生成爬蟲(chóng)項(xiàng)目文件夾pachong1, 生成了爬蟲(chóng)文件Chanpin.py。
第二步,根據(jù)需要的數(shù)據(jù),定義Item,打開(kāi)Item.py文件定義要爬取的數(shù)據(jù)。
第三步,編寫spider文件,打開(kāi)生成的爬蟲(chóng)文件Chanpin.py。
(2)用列表推導(dǎo)式生成start_urls
(3)定義商品列表頁(yè)解析方法
3.2使用MongoDB和scrapy_redis搭建分布式爬蟲(chóng)
在使用之前我們要確保已經(jīng)安裝好了MongoDB并啟動(dòng)了該服務(wù),進(jìn)入python工作模式。此處主要用于Python數(shù)據(jù)的保存,我們要安裝Python的PyMongo庫(kù),運(yùn)行‘pip install pymongo命令完成pymongo的安裝。
執(zhí)行爬蟲(chóng)代碼,然后到Robomongo刷新就會(huì)看到數(shù)據(jù)已經(jīng)保存在數(shù)據(jù)庫(kù)里。
4 結(jié)束語(yǔ)
本次實(shí)驗(yàn)通過(guò)Python編程實(shí)現(xiàn)對(duì)電子商務(wù)網(wǎng)站進(jìn)行商品信息的爬蟲(chóng),能夠?qū)χ付ňW(wǎng)頁(yè)中的商品信息、商品圖片、商品介紹文字等進(jìn)行抓取。經(jīng)反復(fù)測(cè)試數(shù)據(jù)顯示,該程序能夠有效的實(shí)現(xiàn)電子商務(wù)商品信息進(jìn)行批量下載功能,而且提高個(gè)性化數(shù)據(jù)的獲取。
參考文獻(xiàn):
[1] 謝克武. 大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)[J].軟件開(kāi)發(fā), 2017,18
[2] 齊文光. Python網(wǎng)絡(luò)爬蟲(chóng)實(shí)例教程[M].人民郵電出版社.2018.7
[3] 仇明. 基于 Python 的圖片爬蟲(chóng)程序設(shè)計(jì)[J].工業(yè)技術(shù)與職業(yè)教育.2019.3