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

基于Scrapy的食品安全輿情數據爬取與分析

2022-09-20 02:55:36魏海昱林偉鴻賀超波
現代計算機 2022年14期
關鍵詞:頁面

魏海昱,林偉鴻,賀超波

(仲愷農業工程學院信息科學與技術學院,廣州 510225)

0 引言

俗話說“民以食為天”,食品安全關系到民眾的身體健康,是不能被忽略的重大問題。即使我國對食品的質量檢驗、安全檢查等方面要求嚴格,但食品安全事件依然頻頻發生。當下互聯網高度普及,網絡已經成為信息傳播的主要載體,社交平臺通過分享、轉發等功能將內容廣泛傳播,尤其是各類視頻網站為網絡輿情的形成帶來了便利性和復雜性。例如,嗶哩嗶哩是我國最具影響力的視頻網站之一,目前其食品安全主題下發布的視頻數正在高速增長。很多食品安全事件通過視頻的形式進行傳播,曝光了當前社會存在的食品衛生與安全問題,給網民帶來視覺沖擊力的同時也激發他們對此類事件討論的積極性,進而產生食品安全輿情事件。越來越多網民的觀看、轉發與評論會加速網絡輿情的擴散,不但會降低群眾對食品的消費信心和滿意度,還會影響社會穩定。

1 相關技術

1.1 Ajax技術

Ajax(asynchronous JavaScript and XML),中文名為異步JavaScript和XML技術,它結合了包括異步JavaScript、XML、JSON、DOM、CSS、HTML以及XMLHttpRequest等多項技術。異步指在請求更新局部內容的時候允許Web瀏覽器端在其他地方進行操作,同步則是指請求數據時整個頁面都需要更新。在瀏覽器和服務器之間設立了一個Ajax引擎,能實現兩者之間通信的異步化。網站的開發者將更新頻繁的數據或者需要驗證的信息放置在數據庫中,當數據庫接收到瀏覽器端的Ajax引擎通過JavaScript發送的請求后,再根據請求內容將需要的數據傳送給瀏覽器端。相比傳統的Web應用要把所有用戶請求都交給服務器的交互方式而言,Ajax減少了數據的傳輸量,加快了響應速度。Ajax Web的應用模型如圖1所示。

圖1 Ajax Web應用模型

Ajax的使用方法有兩種:①使用XMLHttpRequest對象(XHR)與Web服務器進行異步。在XHR上集成HTTP方法、URL以及JavaScript函數,當瀏覽器端觸發了Ajax請求,就通過XHR向服務器端發送請求,將接收的數據經過DOM重構更新到瀏覽器端,然后更新局部數據。②使用JQuery進行異步。JQuery是一個快速、簡潔的JavaScript庫,通過JQuery Ajax方法,用HTTP方法從遠程服務器上請求HTML、XML或Json格式的文本,并將數據載入到網頁的CSS框架。Ajax接收返回String類型的參數,具體支持的數據類型如表1所示。

表1 Ajax數據類型

1.2 Scrapy爬蟲框架

面對多變的Web環境,爬蟲程序不僅需要優秀的爬取策略對目標數據進行獲取,還需要高效的架構去支撐爬蟲系統的運行,并能夠快速調整以適應不同環境的Web服務器。Scrapy是基于Twisted異步處理框架實現的,具有架構清晰、模塊間耦合度低、拓展性強等特點。Scrapy框架由Engine(框架的核心,用于整個系統的數據流處理,事務觸發)、Item(爬取的數據經格式化成規范的對象存儲)、Schedule(處理請求與隊列)、Downloader(下載網頁的內容)、Spiders(負責爬取邏輯和網頁解析規則,處理提取結果、處理請求)、Item Pipeline(清洗、驗證、存儲數據)、Downloader Middlewares(處理Enginer和Downloader之間的請求和響應)和Spider Middlewares(處理Spider和Engine的請求和響應)組成。

Scrapy框架首先需要創建項目,生成描述框架各項功能的文件,再將爬蟲需要實現的功能嵌入需要響應的文件中。在使用Scrapy框架后,可拓展性提高,例如在分布式爬蟲的應用上,使用Scrapy框架擴展Scheduler,Downloader等組件,實現同步爬取隊列,結合Scrapy-Redis庫能夠實現Scrapy分布式任務、調度、去重等功能,使用Scrapyd工具提供的HTTP接口,能夠實現部署、啟動、停止、刪除等對爬蟲的操作。

1.3 動態網頁爬取技術

據統計,互聯網上的動態網頁占比在32%左右,并且增速高于靜態網頁。動態網頁可以根據用戶需求加載網頁的局部內容,智能地請求數據,而不是讓瀏覽器重新加載整個頁面。動態網頁每次更新都會下載少量需要加載的數據,所需要的帶寬更小,這使得頁面的更新速度更快,節約了互聯網資源。目前,對動態網頁的爬取有逆向分析與Selenium自動化爬取兩種方式。

1.3.1 逆向分析法

動態網頁使用Ajax技術后,網頁的數據內容在Web瀏覽器使用Ajax引擎發送HTTP請求,通過數據庫異步更新至Web瀏覽器端進行渲染顯示。逆向分析法是通過溯源,反向追蹤的方式,找到隱藏在Web服務器前端與數據庫后端的交互的Ajax請求以及數據存放的位置。在動態網頁中,向Web服務器發送每一個帶參數Ajax請求都能夠返回帶有數據信息的數據文件,因此可以利用這種特性,分析Ajax請求將靜態網頁的爬取方法應用到動態網頁中。

1.效益倒逼建產模式。油田公司首先組織開展難采儲量區塊分類產能和效益評價,優選出效益指標較高的區塊。然后,以油價50 美元/桶為基準,按照累計產量和內部收益率達標(8%)倒算單井在全生命周期(15 年)內需要的累計投入。再以操作成本比相鄰單元單井下降25%為依據,測算單井鉆井投資控制目標。以此為據,油田公司每年拿出一定比例工作量與油服企業協商談判,雙方達成一致后,油服企業組織施工建設。效益倒逼合作建產實現了雙方合作共贏,油田公司實現了部分難采儲量開發動用,盤活了資源,增加了生產能力;油服企業通過控投降本,盤活了閑置資產,增加了收入。

首先通過瀏覽器內置的Web開發者工具追蹤到目標數據文件地址,再利用Network工具捕獲Web瀏覽器端發送的HTTP請求和服務器端的響應找到目標數據鏈接,在請求頭部分能獲取到目標數據文件的URL地址以及請求所需要的參數。然后根據該數據URL請求的格式來構造目標URL,模擬Web瀏覽器端向目標文件數據庫端發送Ajax請求,最后提取返回的數據內容。

1.3.2 Selenium自動化獲取

Selenium是Thoughtworks公司開發的專用于Web自動化測試的工具,支持多種平臺的瀏覽器,如Chrome、Firefox及Android等。Selenium可用于自動化Web應用程序,模擬用戶使用Web瀏覽器的真實行為,例如點擊、滑動、選擇、輸入等操作,引導數據庫端更新數據,捕捉瀏覽器渲染JavaScript后的數據,做到“所見即可爬”,能夠很好地適應動態網頁的特性,有效地爬取動態網頁的數據。Selennium自動化爬取方式能避開分析API和JS等交互請求,可以直接爬取絕大多數的網站。

以上兩種數據爬取方法能適用于絕大多數的動態網頁,兩者各有優劣。逆向分析法具有爬取速度快、消耗資源少等優點,但在復雜的互聯網環境里適應能力較弱,原因在于其主要應用于Ajax頁面的數據爬取,然而Ajax只是其中一種JavaScript動態渲染頁面的方法,有些網站的部分內容是由JavaScript生成,并不包含Ajax請求,也有些網站的Ajax接口包含加密參數,需通過解密參數才能利用Ajax抓取數據。相比而言,Selenium自動化測試爬取動態網頁的方法適應力強,可以通過模擬用戶使用Web瀏覽器的方式來直接獲取渲染后的網頁源代碼,但這種方法爬取速度慢、占用資源多,對設備和網絡的性能要求高。

在爬取動態網頁的過程中,可以通過詳細分析要獲取內容的存放地點、獲取的難度等多種因素選擇合適的爬取方式。

2 食品安全輿情數據爬取

以嗶哩嗶哩視頻網站的食品安全輿情數據爬取為目標,其食品安全熱門視頻往往有很多用戶在評論區留言,可以爬取這部分輿情數據進行分析。以2021年6月的“你點的‘外賣’成本只要幾塊?30秒就出鍋?警惕黑心料理包產業”視頻為例,視頻截止目前有五百多萬播放量,一萬七千多條評論,在當時引發過一場關于外賣食品安全的輿情事件。

打開需要分析的嗶哩嗶哩視頻網頁,使用瀏覽器內置的Web開發調試工具有利于分析動態網頁的數據傳輸過程。例如在Chrome瀏覽器中,按下F12打開Chrome開發者工具,需要使用Web開發者頁面頂部一欄的元素(Elements)、源代碼(Sources)、網絡(Network)等面板工具對動態網頁數據進行抓取。它們的具體功能如表2所示。

表2 Web開發調試工具表

2.1 逆向分析法爬取評論數據

使用逆向分析法獲取評論數據,需要對網頁的網絡請求與響應進行分析,看到返回的評論內容是Ajax調用api.reply這個URL,并返回Jsonp類型的數據。在Network選項中,通過對關鍵詞的查詢,定位至相關評論的JavaScript請求,在過濾的鏈接里點擊Preview,可以查看從數據庫服務器響應的數據,如圖2所示。

圖2 確定評論位置

接著對請求的URL鏈接進行分析,構建爬取相應數據的請求URL,獲取該視頻下的所有評論內容。點擊該請求后,在Headers一欄能看到相對應的請求頭,從中了解到該方法是從https://api.bilibili.com/x/v2/reply..使用GET方法發起請求,服務器端響應Json數據。在Payload一欄可以查看請求頭提交的Ajax請求參數,如圖3所示。

圖3 Ajax請求參數

Jquery參數包含Ajax在請求數據時提交的信息,Web瀏覽器端使用HTTP GET從遠程服務器請求到Json格式的文本,再將這些外部數據直接載入到網頁的DOM結構,渲染顯示在Web瀏覽器上。在嗶哩嗶哩視頻評論內容的獲取過程中,需要根據請求頭構建的請求URL鏈接為:https://api.bilibili.com/x/v2/reply?&jsonp=jsonp&pn={}&type={}&oid={}。這里的pn{}表示頁碼,type{}是指響應對象的值,oid{}定位視頻的編號。

逆向分析法爬取的流程圖如圖4所示,分析嗶哩嗶哩視頻評論內容的Ajax請求,模擬Ajax請求從數據庫中獲取數據。在爬取完初始頁面,后續的頁面更新是通過改變頁碼值pn{}實現的,可以使用循環的方式對所有頁碼的數據進行獲取。判斷爬蟲結束的條件是頁碼是否循環完畢,最終爬取該視頻下的所有評論內容。

圖4 逆向分析法爬取數據的流程圖

2.2 Selenium自動化獲取評論數據

基于Selenium爬取評論的流程圖如圖5所示,初始URL為該網頁的URL,本文爬取的評論數據來自于網頁https://www.bilibili.com/video/BV1c54y1G7NQ,爬取過程等待渲染的時間與機器性能和網絡狀況相關,在渲染完成之后,需要對數據進行定位,再進行數據爬取。

圖5 基于Selenium自動化爬取數據的流程圖

通過Web開發調試工具,找到嗶哩嗶哩視頻評論數據在p.text位置上,如圖6所示,通過網頁中的p.text標簽可以獲取評論文本。由于網頁的評論數據是以動態的方式進行更新,加載新的評論數據需要往下滑動直至底部才加載完所有的數據,因此爬蟲的結束條件是判斷滑動是否觸及網頁的底部,如已經觸及底部,不再加載新的數據,此時就能獲得視頻的所有評論內容。

圖6 定位評論數據

通過以上實際的數據爬取可知,逆向分析法與Selenium自動化爬取的過程略有不同,獲取數據的方式也有差別,逆向分析法是通過解析Json頁面來獲取字典的值,而Selenium爬取是通過解析HTML頁面來獲取標簽的值。需要注意的是,無論使用哪種方法都需要注意設置暫停時間,否則短時間對頁面的頻繁操作會觸發嗶哩嗶哩的反爬取機制。圖7所示為爬取的部分數據。

圖7 爬取的數據

3 食品安全輿情案例分析

3.1 視頻評論時間變化分析

以“黑心料理包”視頻評論產生的輿情事件為例,該視頻在2021年6月8日發布,12月對其中的相關評論進行爬取。通過對評論發表日期進行數據分析,發現輿情產生的速度、消逝的速度都非常的快。在有效的9000多條評論里,幾乎95%的輿情評論是在視頻發布當月產生,后續幾個月輿情評論數量占比很小,如圖8所示。

圖8 輿情產生時間分布情況

具體查看當月每一天的輿情產生數據量,如圖9所示。不難看出在視頻發布的最初幾天輿情評論快速累積,原因是視頻在第二天上了嗶哩嗶哩熱門視頻排行榜,大量用戶觀看了該黑心料理包視頻后進行激烈的討論,留下不少評論與回復。后續幾天評論斷崖式減少,在第五天后評論數趨于穩定。因此在食品安全輿情事件的監測過程中,應該重點關注事件發生后的最初幾天這個時間段,對這段時間的話題變化情況進行分析,并根據話題的變化趨勢預測并指引輿情的走向。

圖9 當月輿情評論變化曲線

3.2 高頻詞匯分析

將爬取的評論內容數據進行去除停用詞處理后,使用jieba中文分詞中的lcut函數將輿情內容分詞,得到文本分詞信息。為了進一步了解食品安全輿情評論的主要關注內容,統計了分詞后出現的排名前20的高頻關鍵詞,結果如表3所示。

表3 輿情評論高頻詞匯Top20

在這個“黑心料理包”的輿情事件里,“外在這個“黑心料理包”的輿情事件里,“外賣”“料理”是最高頻出現的兩個詞,反映了本次食品安全事件的突出矛盾是外賣商家使用黑心料理包,嗶哩嗶哩用戶對外賣料理包的情況發表各自的評論與看法。觀察看出評論出現較多的詞語主要還有“美團”“做飯”“便宜”“味道”“衛生”以及“成本”等,充分體現網友們對視頻平臺食品安全視頻發布后的高度關注,并對此現象產生的原因進行探討,輿情趨于理性化,沒有往負面的方向發展。

將分詞后的評論文本進行詞云展示,實現數據可視化,繪制的食品安全輿情話題熱點詞云如圖10所示。

圖10 食品安全輿情話題熱點詞云

4 結語

食品安全牽動著社會民眾的利益與健康,受到廣泛關注。國內食品安全網絡輿情頻發,有效監測、跟蹤以及引導輿情的發展是一個極其重要的問題。本文以嗶哩嗶哩視頻網站關于“黑心料理包”視頻引起的食品安全輿情為例,利用Scrapy爬蟲框架技術對視頻評論區進行爬取,對評論時間及內容信息進行統計分析,有效展示了食品安全輿情的發展狀態。下一階段將重點對評論文本進行情感分析,識別互聯網用戶的情緒和態度,將更有利于食品安全的網絡輿情分析與引導。

猜你喜歡
頁面
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
在本機中輕松完成常見PDF操作
電腦愛好者(2022年3期)2022-05-30 10:48:04
移動頁面設計:為老人做設計
工業設計(2016年1期)2016-05-04 03:58:09
Web安全問答(3)
通信技術(2012年4期)2012-02-15 07:10:35
同一Word文檔 縱橫頁面并存
網站結構在SEO中的研究與應用
幾種頁面置換算法的基本原理及實現方法
淺析ASP.NET頁面導航技術
主站蜘蛛池模板: 毛片网站在线播放| 久久久久中文字幕精品视频| 亚洲动漫h| 一级毛片免费高清视频| 国产精品第一区在线观看| 久久这里只有精品国产99| 欧美人与动牲交a欧美精品| 最近最新中文字幕免费的一页| 91精品国产麻豆国产自产在线| 人人艹人人爽| 亚洲黄网视频| 亚洲最猛黑人xxxx黑人猛交 | 婷婷六月激情综合一区| 国产一区二区网站| 精品福利视频网| 天天躁夜夜躁狠狠躁图片| 免费中文字幕在在线不卡| 免费a在线观看播放| 亚洲毛片网站| 午夜久久影院| 欧美成在线视频| 亚洲人成网站色7777| 19国产精品麻豆免费观看| 日韩区欧美国产区在线观看| 一级高清毛片免费a级高清毛片| 午夜精品影院| 亚洲天堂网在线观看视频| 伊人久久影视| 强奷白丝美女在线观看| 亚洲午夜天堂| 免费看美女毛片| 日韩毛片基地| 国产人人射| 成·人免费午夜无码视频在线观看| 久久精品国产精品青草app| 国产日本视频91| 乱人伦99久久| 色综合手机在线| 国产二级毛片| 国产精品自在在线午夜| 尤物在线观看乱码| 国产精品夜夜嗨视频免费视频| 在线播放国产99re| 国产精品极品美女自在线看免费一区二区| 永久免费AⅤ无码网站在线观看| 成人午夜福利视频| 久视频免费精品6| 丝袜美女被出水视频一区| 国产黄在线免费观看| 亚洲第一中文字幕| 99视频在线免费看| 免费看久久精品99| 国产精品第一区在线观看| 国产成人久久综合777777麻豆| 青青操国产视频| 国产第一福利影院| 制服无码网站| 精品视频在线观看你懂的一区| a级毛片免费网站| 亚洲av片在线免费观看| 亚洲色图在线观看| 国精品91人妻无码一区二区三区| 欧美激情,国产精品| 综合色区亚洲熟妇在线| 日本黄色不卡视频| 国产精品尹人在线观看| 国产在线高清一级毛片| 亚洲国产日韩一区| 久久久精品久久久久三级| 国产美女主播一级成人毛片| 少妇精品在线| 一区二区三区在线不卡免费| 国产精品亚洲一区二区在线观看| 免费看久久精品99| 亚洲精品无码av中文字幕| 中文字幕欧美日韩| 美女一区二区在线观看| 免费毛片a| 人妻丰满熟妇啪啪| 日韩欧美高清视频| 国产日韩久久久久无码精品| 国产探花在线视频|