999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于Python的商品信息采集方法

2021-09-26 03:31:58駱魁永
無線互聯科技 2021年15期
關鍵詞:數據采集

駱魁永

摘 要:隨著電子商務的飛速發展,選擇電商平臺的商品數據作為實驗數據集的科研人員越來越多,為了解決科研人員獲取商品數據困難的問題,文章以“淘寶網”作為目標網站,提出了一種基于Python的商品信息采集方法。首先對商品信息接口所需參數進行分析,優化訪問鏈接,然后使用Python提供的第三方Requests和BeautifulSoup庫,對商品信息進行下載和清洗,最后將清洗后的數據存儲到MongoDB數據庫中。

關鍵詞:電商平臺;Python;數據采集

0? ? 引言

隨著我國互聯網的飛速發展,網上購物越來越受到人們的青睞,現在已經成為一種重要的購物方式。淘寶、京東等大規模電商平臺每天都會生產海量的商品交易數據,針對這些數據進行分析與挖掘,對于改善消費者購物體驗、提高商品銷量等具有非常重要的研究價值,因此吸引了一大批科研人員對電商數據進行研究[1]。但網站出于安全和性能的考慮對其中的數據都制定了很嚴格的保護措施,想要獲取平臺中商品數據并不容易,為了解決科研人員獲取商品數據困難的問題,設計并實現一種商品信息采集方法顯得尤為重要。

1? ? 爬蟲設計與實現

1.1? 接口參數分析

電商平臺商品種類繁多,商品數量更是數以萬計,為了便于消費者快速定位自己感興趣的商品,平臺通常都會提供“商品搜索”功能,例如淘寶、京東、拼多多。以在淘寶網的商品檢索框中搜索“筆記本電腦”為例,通過對搜索返回的前三頁結果頁面對應的鏈接分析,發現q后面的值是搜索的關鍵字,“ie”的值為網頁編碼格式,“s”的取值與搜索結果的頁碼相關,并發現s=(頁碼-1)*44。最后,對搜索結果頁面對應的鏈接優化得到訪問搜索結果頁面的第n頁的URL用Python語言表示為:“https://s.taobao.com/search?q={keyword}&s={page}”.format(keyword=keyword,page=(n-1)*44)。

1.2? 爬蟲算法設計

爬蟲程序的流程如圖1所示,具體步驟如下:(1)訪問start_url頁面(我們將點擊搜索按鈕后返回搜索結果的第一個頁面稱之為start_url頁面),獲取返回搜索結果的總頁面數total_page_num。(2)判斷檢索結果頁面是否遍歷完成,如果完成轉到8,否則繼續執行3。(3)對待訪問的page_num頁面的鏈接進行優化。(4)將檢索結果中的第page_num頁內容下載至本地。(5)從下載的網頁中解析商品詳情頁包含的商品信息。(6)將采集到的商品信息存入MongoDB數據庫。(7)page_num+=1,重復步驟2—7,抓取剩余檢索頁面中的商品信息。(8)程序運行結束。

1.3? 商品信息下載

對于商品信息的下載,主要使用Python提供的第三方庫Requests[2],它是基于Python開發的HTTP庫,不僅可以重復讀取HTTP請求返回的數據,還可以自動識別網頁編碼,可以輕松模擬瀏覽器的工作完成網頁下載任務。具體實現代碼如下所示:

head={‘User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36,Connection: ‘keep-alive}

def get_index(url):

data=requests.get(url,headers=head,timeout=2)

return data

1.4? 商品信息清洗

通過對下載的網頁源碼分析發現,在一個script的標簽中可以找到關于商品的所有主要信息,如商品的名稱、價格、郵費、付款人數、圖片地址、店鋪名等,這些數據以json格式被存儲。對于商品信息清洗,主要通過BeautifulSoup[3,4]和正則表達式來完成,具體實現代碼如下:

soup=BeautifulSoup(response.content,lxml)

goods_list=soup.find(‘script,text=re.compile(‘g_page_config)).string.strip()

pageConfig=re.search(‘g_page_config = (.*?);\n,goods_list,re.S)

pageConfig_dict=json.loads(pageConfig.group(1))

pageGoods=pageConfig_dict[‘mods][‘itemlist][‘data][‘auctions]

1.5? 商品信息存儲

由于爬蟲采集到的數據具有復雜結構,這里使用MongoDB進行數據存儲。在Python中通過開源模塊pymongo可以很方便的實現與MongoDB數據庫的交互,具體代碼實現如下:

client=pymongo.MongoClient(‘localhost,27017)

taobao=client[‘taobao]

goods=taobao[‘product]

def save_to_DB(result):

try:

if goods.insert_one(result):

print(‘存儲到數據庫成功,result)

except Exception:

print(‘存儲到數據庫失敗,result)

2? ? 關鍵問題及解決方法

2.1? Robots協議

對“淘寶網”的Robots文件分析可知,它對爬蟲的拒絕機制主要在于User-agent的識別,使用真實的瀏覽器可以正常訪問站點,而使用爬蟲程序將會遭到攔截。本爬蟲的解決方法是通過為請求添加頭部信息,將爬蟲偽裝成瀏覽器[5],使其能夠正常訪問站點。

2.2? IP限制

短時間內使用同一IP賬號對“淘寶網”進行高頻次的訪問,會導致IP賬號被拉黑。本文解決方法是設置IP代理池,每一時間間隔都會從代理池中重新獲取新的IP賬號,從而避免同一IP在短時間內大量訪問的情況。

2.3? 多進程并發采集

多進程是相對單進程來講的,單進程即同一時間段內處理器只處理一個問題,只有處理完這個問題后,才開始解決下一問題。為了提高商品信息的采集效率,充分利用多核CPU資源,爬蟲程序使用Python提供的多進程包multiprocessing,對商品信息進行并發采集。

3? ? 結語

本文基于Python的第三方庫:Requests和BeautifulSoup,實現了一個易定制易拓展的主題爬蟲,并以“淘寶網”為例進行商品信息的定向抓取。通過實驗證明,該方法能有效降低數據采集的難度,可以幫助科研人員獲取商品數據,具有一定的現實意義。但是,該方法距離成熟的爬蟲還有一定的差距,在今后的工作中,考慮引入Scrapy框架[6],提高爬蟲效率及其魯棒性。

[參考文獻]

[1]丁晟春,侯琳琳,王穎.基于電商數據的產品知識圖譜構建研究[J].現代圖書情報技術,2019(3):45-56.

[2]常逢佳,李宗花,文靜,等.基于Python的招聘數據爬蟲設計與實現[J].軟件導刊,2019(12):130-133.

[3]溫婭娜,袁梓梁.基于Python爬蟲技術的網頁解析與數據獲取研究[J].現代信息科技,2020(1):12-13.

[4]房瑾堂.基于網絡爬蟲的在線教育平臺的設計與實現[D].北京:北京交通大學,2016.

[5]余本國.基于python網絡爬蟲的瀏覽器偽裝技術探討[J].太原學院學報:自然科學版,2020(1):47-50.

[6]杜鵬輝,仇繼揚,彭書濤,等.基于Scrapy的網絡爬蟲的設計與實現[J].電子設計工程,2019(22):120-123.

(編輯 何 琳)

Method of collecting product information based on Python

Luo Kuiyong

(College of Information Engineering, Xinyang Agriculture and Forestry University, Xinyang 464000, China)

Abstract:With the rapid development of e-commerce, more and more researchers are choosing data of product from e-commerce platforms as experimental data sets. In order to solve the problem of scientific researchers difficulty in obtaining commodity data, this article takes “Taobao” as the target website and proposes a Python-based method for collecting commodity information. First, analyze the required parameters of the product information interface and optimize the access link, and then use the third-party Requests and Beautiful Soup libraries provided by Python to download and clean the product information, and finally store the cleaned data in the Mongo DB database.

Key words:e-commerce platform; Python; data collection

猜你喜歡
數據采集
CS5463在植栽用電子鎮流器老化監控系統中的應用
大數據時代高校數據管理的思考
科技視界(2016年18期)2016-11-03 22:51:40
鐵路客流時空分布研究綜述
基于廣播模式的數據實時采集與處理系統
軟件工程(2016年8期)2016-10-25 15:54:18
通用Web表單數據采集系統的設計與實現
軟件工程(2016年8期)2016-10-25 15:52:53
基于開源系統的綜合業務數據采集系統的開發研究
主站蜘蛛池模板: 精品亚洲欧美中文字幕在线看| 国产一在线观看| 国产精品污视频| 亚洲美女一级毛片| 日韩 欧美 小说 综合网 另类| 亚洲欧美日韩成人在线| 国产国产人免费视频成18| 亚洲一区波多野结衣二区三区| 免费看av在线网站网址| 美女无遮挡被啪啪到高潮免费| 久久黄色视频影| 国国产a国产片免费麻豆| 日本人妻丰满熟妇区| 欧美性久久久久| 97狠狠操| 国产麻豆精品久久一二三| 欧美一道本| 亚洲精品另类| 欧美在线黄| 在线不卡免费视频| 国产精品99r8在线观看| 丝袜美女被出水视频一区| 2020最新国产精品视频| 四虎精品黑人视频| 91免费国产在线观看尤物| 91成人在线免费视频| 在线观看欧美国产| 亚洲综合狠狠| 色综合天天视频在线观看| 国产激情在线视频| 日韩在线视频网站| 日本欧美中文字幕精品亚洲| a级毛片免费网站| a毛片在线播放| 国产精品女人呻吟在线观看| 亚洲一区二区三区麻豆| 99热这里只有精品2| 国产欧美视频综合二区| 亚洲精品动漫| 91久久偷偷做嫩草影院| 色综合网址| 色天天综合久久久久综合片| 91久久天天躁狠狠躁夜夜| 无遮挡一级毛片呦女视频| 日韩欧美在线观看| 久久99精品国产麻豆宅宅| 国产成人综合日韩精品无码不卡 | 尤物在线观看乱码| 欧美日韩国产在线播放| 2020精品极品国产色在线观看| аⅴ资源中文在线天堂| 亚洲视屏在线观看| 亚洲av成人无码网站在线观看| 亚洲精品国产自在现线最新| 毛片在线播放网址| 凹凸国产熟女精品视频| 国内嫩模私拍精品视频| 中文字幕一区二区视频| 欧美va亚洲va香蕉在线| av大片在线无码免费| 久久精品亚洲中文字幕乱码| 日本一区中文字幕最新在线| 中文字幕有乳无码| 91成人免费观看| 在线欧美一区| 亚洲日韩AV无码精品| 久久精品人人做人人综合试看| 免费国产福利| 国产精品欧美激情| 亚洲va欧美va国产综合下载| 免费高清a毛片| 日韩无码黄色网站| 成·人免费午夜无码视频在线观看| 亚洲天堂视频网| 国内精品视频区在线2021| 亚洲码一区二区三区| 啪啪永久免费av| 首页亚洲国产丝袜长腿综合| 国产一区二区在线视频观看| 国产一区二区视频在线| 一区二区三区四区在线| 亚洲精品在线观看91|