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