亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2021-09-26 03:31:58駱魁永
        無線互聯(lián)科技 2021年15期
        關(guān)鍵詞:電商平臺(tái)數(shù)據(jù)采集

        駱魁永

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

        關(guān)鍵詞:電商平臺(tái);Python;數(shù)據(jù)采集

        0? ? 引言

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

        1? ? 爬蟲設(shè)計(jì)與實(shí)現(xiàn)

        1.1? 接口參數(shù)分析

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

        1.2? 爬蟲算法設(shè)計(jì)

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

        1.3? 商品信息下載

        對(duì)于商品信息的下載,主要使用Python提供的第三方庫(kù)Requests[2],它是基于Python開發(fā)的HTTP庫(kù),不僅可以重復(fù)讀取HTTP請(qǐng)求返回的數(shù)據(jù),還可以自動(dòng)識(shí)別網(wǎng)頁編碼,可以輕松模擬瀏覽器的工作完成網(wǎng)頁下載任務(wù)。具體實(shí)現(xiàn)代碼如下所示:

        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? 商品信息清洗

        通過對(duì)下載的網(wǎng)頁源碼分析發(fā)現(xiàn),在一個(gè)script的標(biāo)簽中可以找到關(guān)于商品的所有主要信息,如商品的名稱、價(jià)格、郵費(fèi)、付款人數(shù)、圖片地址、店鋪名等,這些數(shù)據(jù)以json格式被存儲(chǔ)。對(duì)于商品信息清洗,主要通過BeautifulSoup[3,4]和正則表達(dá)式來完成,具體實(shí)現(xiàn)代碼如下:

        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][‘a(chǎn)uctions]

        1.5? 商品信息存儲(chǔ)

        由于爬蟲采集到的數(shù)據(jù)具有復(fù)雜結(jié)構(gòu),這里使用MongoDB進(jìn)行數(shù)據(jù)存儲(chǔ)。在Python中通過開源模塊pymongo可以很方便的實(shí)現(xiàn)與MongoDB數(shù)據(jù)庫(kù)的交互,具體代碼實(shí)現(xiàn)如下:

        client=pymongo.MongoClient(‘localhost,27017)

        taobao=client[‘taobao]

        goods=taobao[‘product]

        def save_to_DB(result):

        try:

        if goods.insert_one(result):

        print(‘存儲(chǔ)到數(shù)據(jù)庫(kù)成功,result)

        except Exception:

        print(‘存儲(chǔ)到數(shù)據(jù)庫(kù)失敗,result)

        2? ? 關(guān)鍵問題及解決方法

        2.1? Robots協(xié)議

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

        2.2? IP限制

        短時(shí)間內(nèi)使用同一IP賬號(hào)對(duì)“淘寶網(wǎng)”進(jìn)行高頻次的訪問,會(huì)導(dǎo)致IP賬號(hào)被拉黑。本文解決方法是設(shè)置IP代理池,每一時(shí)間間隔都會(huì)從代理池中重新獲取新的IP賬號(hào),從而避免同一IP在短時(shí)間內(nèi)大量訪問的情況。

        2.3? 多進(jìn)程并發(fā)采集

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

        3? ? 結(jié)語

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

        [參考文獻(xiàn)]

        [1]丁晟春,侯琳琳,王穎.基于電商數(shù)據(jù)的產(chǎn)品知識(shí)圖譜構(gòu)建研究[J].現(xiàn)代圖書情報(bào)技術(shù),2019(3):45-56.

        [2]常逢佳,李宗花,文靜,等.基于Python的招聘數(shù)據(jù)爬蟲設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2019(12):130-133.

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

        [4]房瑾堂.基于網(wǎng)絡(luò)爬蟲的在線教育平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2016.

        [5]余本國(guó).基于python網(wǎng)絡(luò)爬蟲的瀏覽器偽裝技術(shù)探討[J].太原學(xué)院學(xué)報(bào):自然科學(xué)版,2020(1):47-50.

        [6]杜鵬輝,仇繼揚(yáng),彭書濤,等.基于Scrapy的網(wǎng)絡(luò)爬蟲的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(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

        猜你喜歡
        電商平臺(tái)數(shù)據(jù)采集
        基于電商平臺(tái)的大學(xué)生互聯(lián)網(wǎng)創(chuàng)業(yè)經(jīng)濟(jì)研究
        鐵路客流時(shí)空分布研究綜述
        基于廣播模式的數(shù)據(jù)實(shí)時(shí)采集與處理系統(tǒng)
        軟件工程(2016年8期)2016-10-25 15:54:18
        通用Web表單數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        軟件工程(2016年8期)2016-10-25 15:52:53
        試析我國(guó)個(gè)人消費(fèi)信貸領(lǐng)域發(fā)展面臨的主要挑戰(zhàn)
        基于開源系統(tǒng)的綜合業(yè)務(wù)數(shù)據(jù)采集系統(tǒng)的開發(fā)研究
        基于用戶體驗(yàn)的電商平臺(tái)界面管理影響因素研究
        科技視界(2016年20期)2016-09-29 11:07:22
        試論電商平臺(tái)主導(dǎo)的供應(yīng)鏈融資
        亚洲中文字幕日本日韩| 国产真实夫妇交换视频| 亚洲熟妇无码久久精品| 一二区成人影院电影网| 欧美成人精品一区二区综合 | 无码a级毛片免费视频内谢5j| 最近最新中文字幕| 真人男女做爰无遮挡免费视频| 国产丝袜免费精品一区二区| 国产精品亚洲一区二区三区正片| 校园春色日韩高清一区二区 | 性做久久久久久久| 久久AV老司机精品网站导航 | 国产91久久麻豆黄片| 国精品午夜福利视频不卡| 秋霞午夜无码鲁丝片午夜精品 | 一本大道东京热无码中字 | 亚洲av无码专区在线观看下载| 99久久国产综合精品女图图等你| 欧美专区在线| 国产成人丝袜在线无码| 激情免费视频一区二区三区| 久久免费亚洲免费视频| 国产精品亚洲片在线观看不卡| 特黄a级毛片免费视频| 男人的天堂在线无码视频| 激,情四虎欧美视频图片| 精品日韩一区二区三区av| 国产亚洲人成在线观看| 日本高清视频wwww色| 中文字幕日韩精品无码内射| 欧美成人久久久免费播放| 无码流畅无码福利午夜| 亚洲av手机在线观看| 亚洲精品国产精品乱码视色| 久久久久久亚洲av无码蜜芽| 中文字幕人妻丝袜美腿乱| 国产欧美精品在线一区二区三区 | а√中文在线资源库| 亚洲av永久无码精品国产精品| 国产精品久久中文字幕第一页|