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

科技資訊智能采集服務的設計與實現

2021-04-13 07:28:40于營東
科技視界 2021年7期
關鍵詞:分類數據庫微信

于營東

(上海建工集團工程研究總院,上海 201114)

0 引言

現階段集團各子公司的科技資訊主要發布在各自的微信公眾號上,無法實現集團內部的科技資訊共享。 為實現集團內部的科技資訊共享,需開發科技資訊共享平臺,將各子公司微信公眾號的科技資訊信息采集后存儲起來。

1 總體設計

基于Python+MySQL 的科技資訊采集服務的設計與實現,要求實現定時數據抓取功能,數據可視化和檢索功能。 實現對集團內部微信公眾號的數據采集,然后對采集到的數據進行分析和處理, 最后存入MySQL 數據庫中,方便后續的檢索和查看。 對于數據采集,要先獲取到公眾號的菜單,通過菜單獲取到具體的文章分類, 再通過文章分類獲取到文章列表,然后根據文章列表中的文章地址獲取文章內容。總體流程如圖1 所示。

數據采集是基于HTTP 協議的, 核心步驟主要包括HTTP 協議請求報文、HTTP 響應報文及數據解析過程。 根據系統數據采集采集操作、數據采集、任務調度及數據存儲4 部分功能結構相關關系,采集流程為:

(1) 按照采集頁面的查詢參數進行采集參數設置,如時間、區域等參數,一般為全數據采集,確定參數后進行進行HTTP 請求報文(從客戶向服務器發送的請求報文)組裝,HTTP 請求報文由請求行、請求頭部、空行和請求數據4 個部分組成。

(2)組裝好請求報文后,客戶端向服務的發送報文請求,其根本操作就是按照請求報文內容的請求對應的URL 地址發送去搬過去,URL 地址和報文頭的Host 屬性組成完整的請求URL。

圖1 總體流程圖

(3)服務器端的響應報文,系統后臺服務按照客戶端請求返回響應報文,HTTP 響應由狀態行、消息報頭、響應正文三個部分組成。

(4)頁面表單數據解析操作就是針對響應報文返回的響應正文進行數據解析,可直接用正則表達式對整個響應報文進行匹配提取出對應信息。

(5)數據解析完畢后,按照業務列表即表頭標識把對應列頁面數據存儲至數據庫中,同時進行相關日志記錄, 并把采集的URL 地址及參數信息同時記錄存儲至數據庫日志表中。

(6)重復以上步驟(2)~(5),直至數據采集完畢。

在數據采集過程中,由于目前很多業務系統為了數據響應的及時性,會按照頁面列表顯示的條數進行指定數據行數的返回,此時要特別注意進行“下一頁”的URL 繼續采集,直至“最后一頁”采集完畢。

2 詳細設計與實現

2.1 數據抓取地址獲取

要實現微信公眾號文章的抓取,首先要了解公眾號文章的規則。

通過對微信客戶端可以取得公眾號歷史消息的地 址, 地 址 格 式 為“https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=xxxxx&scene=100#wec hat_redirect”, 但是這個地址需要在微信客戶端上打開,即使通過Fiddler 抓取到的真實請求地址,也因為需要驗證且地址有效期是20 分鐘, 而無法取得文章的分類,所以該地址無法使用。

通過對公眾號菜單的地址取得地址“http://mp.weixin.qq.com/mp/homepage?__biz=xxxxx&hid=y&sn=z&scene=100#wechat_redirect”,這個地址是永久性的,不需要驗證并且可以獲取到該菜單下的分類及分類下的所有文章列表,所以可以通過該地址來抓取文章分類和文章列表。

然后對公眾號文章 的地址“https://mp.weixin.qq.com/s/xxxxxx”進行分析,這個地址同列表連接相同,可以用來抓取文章內容。

通過以上步驟即可獲得抓取文章列表和文章內容的地址規則。

2.2 抓取文章列表

要實現對網絡地址的抓取,就要使用Python 中的urllib3 和requests 庫。 requests 庫是Python 應用最為廣泛的HTTP 工具庫,而urllib3 則是requests 的基石。

通過Python 的urllib3 和requests 庫請求獲取的文章分類的地址,獲取對應的HTML 頁面源代碼。源代碼中的Javascript 代碼中以“var data=”開頭的數據包含分類名稱,如cname:建筑工程,其中的建筑工程即為分類名稱。 使用正則表達式“cname:[^,]*”,可以抓取到所有的分類名稱,抓取到的分類名稱存在重復,且順序再后續抓取文章列表中要用到, 所以需要在排序后去重。 然后通過下拉滾動訪問文章列表可以得到獲取文章列表的地址“http://mp.weixin.qq.com/mp/homepage?__biz=xxxxx&hid=y&sn=z&scene=100&cid=0&begin=1&count=5&action=appmsg_list&f=json&r=r&appmsg_token=”,字段解釋如表1 所示。 POST 請求該地址,可以獲取到數據如圖2 所示,數據字段解釋如表2 所示。 然后把抓取到的文章內容存儲到數據庫中。

2.3 抓取文章內容

對抓取到文章地址進行文章內容抓取得到圖3的內容, 可以得出內容主要包含在id=“js_content”的div 標簽中,使用lxml 對該div 的內容進行提取,如果包含id=“js_share_source”的a 標簽,則說明該地址為分享地址,則需要對原地址的內容進行抓取;否則當前頁面的內容即為文章的內容。抓取到的內容直接保存到數據庫中。 抓取代碼如圖4 所示。

2.4 數據存儲

圖2 文章列表

為實現數據的持久化存儲,把數據存儲到關系型數據庫MySQL 中。MySQL 中要提前定義表結構,也就是說表共有多少列(屬性)要提前定義好,并且同事需要定義好每個列所占用的存儲空間。數據以行為單位組織在一起,假如某一行的某一列沒有數據,也需要占用存儲空間。通過對需求和抓取到的數據進行分析后,設計相關數據表,數據表設計如表3 和表4 所示。

表1 請求參數說明

表2 文章列表字段

2.4.1 數據表設計

圖3 網頁內容

圖4 部分抓取代碼

表3 菜單表設計

表4 文章表設計

2.4.2 SQLAlchemy

數據表設計好之后,需要使用Python 把抓取到的數據進行處理后存儲到數據庫中。 SQLAlchemy 是為Python 變成語言提供的開源SQL 工具包及對象關系映射器(ORM)。 SQLAlchemy 提供為高效和高性能數據庫訪問而設計的,適配入簡單和Python 式領域語言中的,全套的周知的企業級持久化模式。 SQLAlchemy的理念是:關系數據庫表現得不太像對象搜集,因為體量和性能開始成為關切; 而對象搜集表現得不太像表格和行, 因為更多的抽象被設計入其中。 因此,SQLAlchmey 采用了類似于Java 里Hibernate 的數據映射器模式,而不是其他ORM 框架采用的主動記錄模式。 不過,通過可選插件可以讓用戶使用聲明式語法。

2.5 定時服務

每天發布的文章內容有限而且內容實時性要求不高, 不需要一直運行, 所以使用Python 中的schedule 設置定時任務,每天早上九點開始執行任務,為防止服務器重啟等異常原因導致任務重啟,故每次重啟時直接執行采集任務。

2.6 結果展示

任務會在每天09:00 開始,自動開始執行采集任務。采集過程中會記錄相應的日志,如有新增內容,則采集后存儲到數據庫。 具體采集結果如圖5 所示

圖5 采集日志

3 結語

在大數據時代, 數據共享和數據采集越發重要,Python 在數據采集方便發揮了重要作用。 由此可見,基于Python 編程語言的網絡爬蟲技術,可以被用于多種網站、網頁數據的搜集中,通過分析爬蟲搜集、攔截的數據信息,可以有效避免外來不明主體對網站服務器的攻擊。

猜你喜歡
分類數據庫微信
分類算一算
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
微信
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
微信
主站蜘蛛池模板: 久久这里只有精品国产99| 高潮爽到爆的喷水女主播视频| 久久9966精品国产免费| 国产一区二区免费播放| 欧美精品一区在线看| 欧洲精品视频在线观看| 九九九久久国产精品| 亚洲一区国色天香| 国产主播福利在线观看| 在线日韩一区二区| 亚洲国产欧美国产综合久久 | 无码精品一区二区久久久| 国产精品开放后亚洲| 亚洲婷婷丁香| 国产亚洲精品91| 亚洲男人天堂网址| 亚洲欧美日韩动漫| 高清色本在线www| 色噜噜综合网| 国产成人凹凸视频在线| 色综合狠狠操| 干中文字幕| 国产综合在线观看视频| 国产91熟女高潮一区二区| 亚洲人成网站18禁动漫无码| 国产区免费精品视频| 久久国产亚洲偷自| 77777亚洲午夜久久多人| 亚洲色图欧美| 91精品国产无线乱码在线| 就去色综合| 在线不卡免费视频| 日韩欧美成人高清在线观看| AV熟女乱| 无码aⅴ精品一区二区三区| 91在线精品麻豆欧美在线| 亚洲欧美综合精品久久成人网| 国产靠逼视频| 99精品高清在线播放| 日韩高清欧美| 国产理论一区| 欧美精品1区| 国产精品性| 亚洲福利一区二区三区| 国产欧美精品一区二区| www.国产福利| 国产精品免费p区| 欧美日韩亚洲国产| 精品国产美女福到在线不卡f| 东京热一区二区三区无码视频| 精品欧美一区二区三区久久久| 毛片网站免费在线观看| 国产丝袜啪啪| 国产jizz| 最新国产精品第1页| 波多野结衣一二三| 黄色网在线| 无码区日韩专区免费系列| 国产精品女主播| 91精品人妻一区二区| 精品1区2区3区| 五月六月伊人狠狠丁香网| 亚洲成人高清无码| 素人激情视频福利| a在线观看免费| 四虎影视库国产精品一区| 久操中文在线| 老熟妇喷水一区二区三区| 国产男女XX00免费观看| 午夜色综合| 亚洲男人的天堂在线观看| 综合亚洲网| 国产网站一区二区三区| 亚洲欧洲日韩综合| 91小视频在线| 高清免费毛片| 午夜一级做a爰片久久毛片| 2021精品国产自在现线看| 欧美成人国产| 无码在线激情片| 久久精品国产亚洲AV忘忧草18| 亚洲娇小与黑人巨大交|