梁金龍,鄒小林
據(jù)統(tǒng)計(jì),目前微信注冊(cè)用戶(hù)數(shù)量已接近10億[1]。由于微信用戶(hù)具有量大,關(guān)注度高、支持群發(fā)等特點(diǎn),政府部門(mén)、企業(yè)、事業(yè)單位、協(xié)會(huì)、商家、學(xué)校,甚至個(gè)人都紛紛注冊(cè)使用公眾號(hào)。但很多公眾號(hào)被受眾關(guān)注得不多,主要原因是這些公眾號(hào)難以提供有質(zhì)量的推文和服務(wù)。為了提高公眾號(hào)的關(guān)注度,一些高校教師進(jìn)行了調(diào)查研究,有研究[2]認(rèn)為用戶(hù)的期望確認(rèn)、感知有用、感知娛樂(lè)、內(nèi)容豐富度以及感知服務(wù)質(zhì)量都顯著影響用戶(hù)對(duì)公眾號(hào)滿(mǎn)意度和持續(xù)使用意愿。也有研究[3]認(rèn)為高校微信公眾號(hào)的使用意愿主要受到感知有用性、感知娛樂(lè)性與信息感知質(zhì)量3 個(gè)因素影響??梢?jiàn)微信公眾號(hào)的有用性、娛樂(lè)性與有質(zhì)量的信息是至關(guān)重要的。針對(duì)校園公眾號(hào)被關(guān)注較少這個(gè)問(wèn)題,采用Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)對(duì)公眾號(hào)進(jìn)行二次開(kāi)發(fā),在注冊(cè)的公眾號(hào)中增加公眾號(hào)推文、網(wǎng)絡(luò)新聞、網(wǎng)絡(luò)笑話(huà)等信息自動(dòng)推送,為學(xué)校校園文化建設(shè)提供可行方案。
微信公眾號(hào)與開(kāi)發(fā)者的服務(wù)器搭建后,可以通過(guò)調(diào)用公眾號(hào)的接口實(shí)現(xiàn)公眾號(hào)二次開(kāi)發(fā)。微信平臺(tái)提供的公眾號(hào)接口有“獲取access_token”接口、“接收事件推送”接口、“自動(dòng)回復(fù)”接口、“自定義菜單”接口。
調(diào)用“獲取access_token”接口時(shí),需要傳遞3 個(gè)參數(shù):grant_type、appid和secret,其中授權(quán)類(lèi)型參數(shù)grant_type是客戶(hù)端證書(shū)client_credential;參數(shù)appid 是公眾號(hào)開(kāi)發(fā)識(shí)別碼ID;參數(shù)secret是開(kāi)發(fā)者密碼。采用https的GET請(qǐng)求方式調(diào)用“獲取access_token”接口,請(qǐng)求的網(wǎng)頁(yè)地址是https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=AppSecret。“自定義菜單”接口的傳輸參數(shù)為access_token和自定義菜單數(shù)據(jù)包。采用https請(qǐng)求的POST方式調(diào)用“自定義菜單”接口,請(qǐng)求的網(wǎng)頁(yè)地址是https://api.weixin.qq.com/cgi- bin/menu/create?access_token=ACCESS_TOKEN。自定義菜單數(shù)據(jù)包結(jié)構(gòu)是Json 結(jié)構(gòu),Json 結(jié)構(gòu)以“名稱(chēng)值對(duì)”形式儲(chǔ)存信息,代碼類(lèi)似為:{"button":[{"name":"網(wǎng)絡(luò)爬蟲(chóng)", "sub_button": [{"type": "click", "name": "微信公眾號(hào)推文","key":"V1"}]}]}。其中名稱(chēng)為"button"的值是一級(jí)菜單列表,可在里面創(chuàng)建3 個(gè)一級(jí)菜單;第一個(gè)"name"的值是一級(jí)菜單名;"sub_button"的值是二級(jí)菜單列表,可在里面創(chuàng)建5 個(gè)二級(jí)菜單;"type"的值是二級(jí)菜單的響應(yīng)動(dòng)作類(lèi)型,有click 和view 等類(lèi)型;第二個(gè)"name"的值是二級(jí)菜單名,"key"的值是二級(jí)菜單的KEY 值,可自定義。其中click是點(diǎn)擊推送事件,用戶(hù)點(diǎn)擊click類(lèi)型按鈕后,微信服務(wù)器會(huì)通過(guò)“接收事件推送”接口推送XML 結(jié)構(gòu)數(shù)據(jù)給開(kāi)發(fā)者,并且?guī)习粹o中開(kāi)發(fā)者填寫(xiě)的KEY 值,開(kāi)發(fā)者可以通過(guò)KEY值與用戶(hù)進(jìn)行交互。
“接收事件推送”接口是微信服務(wù)器把POST 消息的XML 類(lèi)型數(shù)據(jù)包推送給開(kāi)發(fā)者服務(wù)器,即微信用戶(hù)和公眾號(hào)產(chǎn)生交互的過(guò)程中,開(kāi)發(fā)者可以通過(guò)接口獲取用戶(hù)的操作信息。XML 數(shù)據(jù)包中包含開(kāi)發(fā)者微信號(hào)(ToUserName)、微信用戶(hù)帳號(hào)(FromUserName)、消息創(chuàng)建時(shí)間(CreateTime)、消息類(lèi)型(MsgType)、事件類(lèi)型(Event)和事件KEY 值(Event-Key)。開(kāi)發(fā)者根據(jù)消息類(lèi)型、事件類(lèi)型和事件KEY 值對(duì)微信用戶(hù)的操作進(jìn)行判斷和處理。
“自動(dòng)回復(fù)”接口是開(kāi)發(fā)者服務(wù)器把回復(fù)消息的XML結(jié)構(gòu)數(shù)據(jù)包推送給微信服務(wù)器?!敖邮帐录扑汀苯涌谂c“自動(dòng)回復(fù)”接口同時(shí)調(diào)用,實(shí)現(xiàn)公眾號(hào)自動(dòng)接收并回復(fù)用戶(hù)消息,可以回復(fù)文本信息、圖片信息、圖文信息等?!白詣?dòng)回復(fù)”接口回復(fù)的消息類(lèi)型不同,XML 結(jié)構(gòu)數(shù)據(jù)包需要傳遞的參數(shù)也不同,但每個(gè)數(shù)據(jù)包都必須傳遞3 個(gè)參數(shù):微信用戶(hù)帳號(hào)(ToUserName)、開(kāi)發(fā)者微信號(hào)(ToUserName)和消息創(chuàng)建時(shí)間(CreateTime)。特別強(qiáng)調(diào):“自動(dòng)回復(fù)”接口傳輸?shù)腡oUser-Name 和FromUserName 與“接收事件推送”接口接收的相反,開(kāi)發(fā)時(shí)要分清楚?!白詣?dòng)回復(fù)”接口采用https 請(qǐng)求POST方式調(diào)用。
網(wǎng)絡(luò)爬蟲(chóng)是一種按照特定規(guī)則,自動(dòng)抓取網(wǎng)絡(luò)信息的程序或者腳本[4]。網(wǎng)絡(luò)爬蟲(chóng)的結(jié)構(gòu)如圖1 所示,一般包括初始URL、網(wǎng)頁(yè)爬取模塊、網(wǎng)頁(yè)分析模塊和數(shù)據(jù)庫(kù),其中網(wǎng)頁(yè)爬取模塊和網(wǎng)頁(yè)分析模塊是核心模塊。
python爬蟲(chóng)網(wǎng)頁(yè)爬取模塊的爬取方法通常有源碼爬取、抓包爬取。源碼爬取是用python 發(fā)起HTTP 請(qǐng)求直接獲取網(wǎng)頁(yè)的HTML源代碼;抓包爬取則是爬取HTTP請(qǐng)求中的傳輸數(shù)據(jù)包,通過(guò)對(duì)數(shù)據(jù)包url的直接訪(fǎng)問(wèn)爬取數(shù)據(jù)包。
圖1 網(wǎng)絡(luò)爬蟲(chóng)原理圖
網(wǎng)頁(yè)分析模塊解析方法包括正則表達(dá)式解析、Beautiful-Soup解析和Json解析。正則表達(dá)式是由一系列特殊字符和普通字符組成的字符集合[5],可匹配網(wǎng)頁(yè)源碼中特定字符串,提取相應(yīng)信息;BeautifulSoup解析則是應(yīng)用Python第三方庫(kù)Beautiful Soup 進(jìn)行解析,Beautiful Soup 將復(fù)雜的HTML 網(wǎng)頁(yè)轉(zhuǎn)換成一個(gè)復(fù)雜的樹(shù)形結(jié)構(gòu),樹(shù)形結(jié)構(gòu)每個(gè)節(jié)點(diǎn)都是Python 對(duì)象,所有對(duì)象可以歸納為4 種:Tag、BeautifulSoup、NavigableString、comment。Tag 對(duì)象與XML 或HTML 原生文檔中的tag 定義相同;NavigableString 類(lèi)對(duì)象被Beautiful Soup用來(lái)包裝tag中的字符串,NavigableString 字符串與Python 中的Unicode 字符串定義相同;BeautifulSoup 對(duì)象表示的是一個(gè)文檔的全部?jī)?nèi)容,大部分時(shí)候,可以把它當(dāng)作Tag對(duì)象;Comment 對(duì)象是一個(gè)特殊類(lèi)型的NavigableString 對(duì)象。Beautiful Soup 庫(kù)支持最常用的CSS 選擇器,在Tag 或BeautifulSoup 對(duì)象的select()方法中傳入對(duì)象的字符串參數(shù),即可使用CSS 選擇器的語(yǔ)法找到該Tag[6],通過(guò)getText()方法可獲取Tag 中字符串。Json 是一種輕量級(jí)的數(shù)據(jù)交換格式,以“名稱(chēng)值對(duì)”形式儲(chǔ)存信息,易于機(jī)器解析和生成,所以網(wǎng)絡(luò)傳輸數(shù)據(jù)一般采用Json。Json 解析是應(yīng)用Python 第三方庫(kù)“json”解析Json結(jié)構(gòu)的數(shù)據(jù)包,根據(jù)Json數(shù)據(jù)包中的“名稱(chēng)”獲取“值對(duì)”信息。Json 解析使用方法有dumps()和loads(),dumps()是將Python對(duì)象編碼成JSON 字符串,loads()是將字符串解碼為Python 對(duì)象。
開(kāi)發(fā)工作主要包括2部分:大學(xué)校園公眾號(hào)開(kāi)發(fā)平臺(tái)搭建和大學(xué)校園公眾號(hào)二次開(kāi)發(fā)。大學(xué)校園公眾號(hào)開(kāi)發(fā)平臺(tái)搭建包括:公眾號(hào)驗(yàn)證綁定服務(wù)器、用接口工具自定義公眾號(hào)的菜單;在云服務(wù)器上開(kāi)發(fā)接收和處理微信信息的程序,搭建數(shù)據(jù)庫(kù)存放信息,封裝XML 數(shù)據(jù)包。大學(xué)校園公眾號(hào)二次開(kāi)發(fā)包括:開(kāi)發(fā)微信公眾號(hào)推文爬蟲(chóng),開(kāi)發(fā)新聞爬蟲(chóng)和開(kāi)發(fā)段子爬蟲(chóng),將爬蟲(chóng)部署到公眾號(hào)。
大學(xué)校園公眾號(hào)開(kāi)發(fā)的技術(shù)思路如圖2 所示。用戶(hù)進(jìn)行某個(gè)操作的消息會(huì)發(fā)到微信服務(wù)器;微信服務(wù)器發(fā)送消息的XML 數(shù)據(jù)包給開(kāi)發(fā)者服務(wù)器;開(kāi)發(fā)者服務(wù)器接收并解析數(shù)據(jù)包,判斷事件類(lèi)型;如果消息不是自定義菜單事件,回復(fù)success,微信服務(wù)器確定開(kāi)發(fā)者收到了粉絲消息,不會(huì)提示公眾號(hào)異常;如果是自定義菜單事件,根據(jù)事件KEY值判斷用戶(hù)點(diǎn)擊的爬蟲(chóng)菜單,查詢(xún)?cè)撔枨蟮呐老x(chóng)信息是否存在于數(shù)據(jù)庫(kù);如果是,從數(shù)據(jù)庫(kù)提取信息,封裝成特定的XML 數(shù)據(jù)包,回復(fù)給微信服務(wù)器;如果否,運(yùn)行相應(yīng)的爬蟲(chóng)爬取信息,存入數(shù)據(jù)庫(kù)再提取給微信服務(wù)器。
圖2 大學(xué)校園公眾號(hào)開(kāi)發(fā)的技術(shù)思路圖
本文公眾號(hào)二次開(kāi)發(fā)環(huán)境包括:web.py為網(wǎng)絡(luò)框架,python為開(kāi)發(fā)語(yǔ)言和騰訊云服務(wù)器。運(yùn)用web.py搭建網(wǎng)頁(yè),復(fù)制微信公眾平臺(tái)技術(shù)文檔[7]中“搭建服務(wù)”的測(cè)試代碼main.py 到開(kāi)發(fā)者服務(wù)器,用命令提示符執(zhí)行命令:sudo python main.py 80,即可搭建能接收微信服務(wù)器信息的網(wǎng)頁(yè)。完成后,登錄公眾平臺(tái)官網(wǎng),在菜單“基本設(shè)置”中開(kāi)啟公眾號(hào)的開(kāi)發(fā)者模式,在“服務(wù)器配置”中修改配置。需要修改的參數(shù)有url、Token,其中“url”填寫(xiě)開(kāi)發(fā)者服務(wù)器搭建的網(wǎng)頁(yè)地址,“Token”可以自主設(shè)置,只用于驗(yàn)證開(kāi)發(fā)者服務(wù)器。點(diǎn)擊提交按鈕,微信公眾平臺(tái)會(huì)對(duì)開(kāi)發(fā)者服務(wù)器進(jìn)行驗(yàn)證,若token驗(yàn)證成功,會(huì)自動(dòng)返回基本配置的主頁(yè)面,點(diǎn)擊啟動(dòng)按鈕,即可綁定開(kāi)發(fā)者服務(wù)器。
創(chuàng)建公眾號(hào)的菜單需要調(diào)用“獲取access_token”接口獲得access_token,再調(diào)用“自定義菜單”接口創(chuàng)建菜單。開(kāi)發(fā)者可使用微信公眾平臺(tái)中“開(kāi)發(fā)者工具”的在線(xiàn)接口調(diào)試工具,調(diào)用這2 個(gè)接口獲得access_token 和創(chuàng)建菜單。使用在線(xiàn)接口調(diào)試工具獲得access_token 需要修改的參數(shù)有appid和secret,修改好參數(shù)后,點(diǎn)擊“檢查問(wèn)題”按鈕,即可在返回結(jié)果中獲得access_token。使用在線(xiàn)接口調(diào)試工具創(chuàng)建菜單的方法是,在“接口類(lèi)型”中選擇“自定義菜單”,在“接口列表”中選擇“自定義菜單創(chuàng)建窗口”,粘貼access_token和菜單的Json 結(jié)構(gòu)代碼,點(diǎn)擊“檢查問(wèn)題”按鈕,就可以創(chuàng)建菜單了[8]。本文設(shè)置3 個(gè)一級(jí)菜單網(wǎng)絡(luò)爬蟲(chóng)、學(xué)習(xí)資源、學(xué)園活動(dòng);3個(gè)二級(jí)菜單:微信公眾號(hào)推文、新聞、段子;響應(yīng)動(dòng)作類(lèi)型都是click;KEY值分別是“V1”“V2”“V3”。
微信服務(wù)器通過(guò)“接收事件推送”接口把消息的XML類(lèi)型數(shù)據(jù)包推送給開(kāi)發(fā)者服務(wù)器。因本文以web.py 搭建網(wǎng)頁(yè),可以用web.data()方法獲取微信服務(wù)器的XML 數(shù)據(jù)包。復(fù)制微信公眾平臺(tái)技術(shù)文檔[7]中“入門(mén)指引”的解析XML文檔receive.py,用以解析XML 數(shù)據(jù)包,獲取開(kāi)發(fā)者微信號(hào)(ToUserName)、微信用戶(hù)帳號(hào)(FromUserName)等信息。根據(jù)XML 數(shù)據(jù)包中的消息類(lèi)型(MsgType)、事件類(lèi)型(Event)和事件KEY 值(EventKey)判斷用戶(hù)點(diǎn)擊的菜單。如果事件KEY值是“V1”,表明用戶(hù)點(diǎn)擊的菜單是“微信公眾號(hào)推文”,執(zhí)行代碼根據(jù)微信用戶(hù)帳號(hào)查詢(xún)數(shù)據(jù)庫(kù)中用戶(hù)表的公眾號(hào)推文編號(hào),如果編號(hào)小于數(shù)據(jù)庫(kù)中公眾號(hào)推文表的公眾號(hào)推文表,則說(shuō)明數(shù)據(jù)庫(kù)存量充足,可直接從數(shù)據(jù)庫(kù)中提取信息,以圖文消息類(lèi)型回復(fù)用戶(hù);如果存量不足,則微信公眾號(hào)推文爬蟲(chóng)爬取信息,存入數(shù)據(jù)庫(kù),再回復(fù)消息。如果事件KEY值是“V2”,表明用戶(hù)點(diǎn)擊的菜單是“新聞”,如果事件KEY值是“V3”則是“段子”,處理邏輯與點(diǎn)擊“微信公眾號(hào)推文”的處理邏輯類(lèi)似,不過(guò)“新聞”以圖文消息類(lèi)型回復(fù)消息,“段子”以文本消息類(lèi)型回復(fù)消息。
在服務(wù)器下載并安裝MySQL 數(shù)據(jù)庫(kù),運(yùn)用Python 的MySQLdb 庫(kù)連接和操作數(shù)據(jù)庫(kù)。用MySQLdb.Connect()的方法創(chuàng)建數(shù)據(jù)庫(kù)的連接“conn”,該方法可以指定數(shù)據(jù)庫(kù)的參數(shù):用戶(hù)名,密碼,主機(jī)等信息;通過(guò)獲取到的數(shù)據(jù)庫(kù)連接“conn”下的cursor()方法來(lái)創(chuàng)建游標(biāo);通過(guò)游標(biāo)操作execute()方法可以寫(xiě)入純sql 語(yǔ)句;運(yùn)用sql 語(yǔ)句創(chuàng)建、查詢(xún)和更新表格。本文創(chuàng)建的數(shù)據(jù)庫(kù)的表主要有學(xué)生用戶(hù)表user_info、段子爬蟲(chóng)表jokes_spider、新聞爬蟲(chóng)表new_spider和公眾號(hào)推文表article_spider。學(xué)生用戶(hù)表user_info 記錄著用戶(hù)名、段子爬蟲(chóng)編號(hào)、新聞爬蟲(chóng)編號(hào)、公眾號(hào)推文編號(hào);段子爬蟲(chóng)表jokes_spider 記錄著段子爬蟲(chóng)編號(hào)、段子內(nèi)容;新聞爬蟲(chóng)表new_spider記錄著新聞爬蟲(chóng)編號(hào)、新聞網(wǎng)址、新聞標(biāo)題、新聞圖片地址、新聞簡(jiǎn)介;公眾號(hào)推文表article_spider 記錄著公眾號(hào)推文編號(hào)、公眾號(hào)推文網(wǎng)址、公眾號(hào)推文標(biāo)題、公眾號(hào)推文圖片地址、公眾號(hào)推文簡(jiǎn)介。
公眾號(hào)調(diào)用“自動(dòng)回復(fù)”接口給用戶(hù)回復(fù)消息時(shí),需要傳輸特定的XML數(shù)據(jù)包。開(kāi)發(fā)者需封裝XML數(shù)據(jù)包,以在回復(fù)消息時(shí)調(diào)用。開(kāi)發(fā)者根據(jù)用微信公眾平臺(tái)技術(shù)文檔[7]中“入門(mén)指引”的XML封裝文檔reply.py,把回復(fù)文本信息和圖文信息的XML 結(jié)構(gòu)封裝成函數(shù)。例如,封裝文本信息的XML 數(shù)據(jù)包需要3 個(gè)參數(shù):toUserName、fromUserName 和Content,Content 是回復(fù)消息的文本內(nèi)容。以Python 的字典構(gòu)造函數(shù)dict()建造一個(gè)空字典,在字典里建立映射關(guān)系。其中,用戶(hù)帳號(hào)toUserName 映射到ToUserName;開(kāi)發(fā)者微信號(hào)fromUserName映射到FromUserName;數(shù)據(jù)庫(kù)提取的信息Content 映射到Content;運(yùn)用Python 中time 庫(kù)的time()方法記錄消息創(chuàng)建的時(shí)間,并映射到CreateTime。根據(jù)微信公眾平臺(tái)技術(shù)文檔[7]中的回復(fù)文本信息的XML結(jié)構(gòu),運(yùn)用Python的format()方法結(jié)構(gòu)化文本信息的XML數(shù)據(jù)包,即可封裝完畢。
向用戶(hù)回復(fù)文本信息的XML 結(jié)構(gòu)如下。
微信公眾號(hào)的推文可通過(guò)搜狗搜索網(wǎng)站的微信搜索出,微信公眾號(hào)推文爬蟲(chóng)可爬取微信搜索頁(yè)獲得推文信息。其工作流程是用源碼爬取微信搜索頁(yè)的url 獲取網(wǎng)頁(yè)源代碼;運(yùn)用BeautifulSoup 的css 選擇器獲取推文標(biāo)題和推文簡(jiǎn)介;用正則表達(dá)式獲得推文的圖片地址和網(wǎng)頁(yè)地址,但是正則表達(dá)式解析出的網(wǎng)頁(yè)地址并不能直接打開(kāi)網(wǎng)頁(yè),需要把網(wǎng)頁(yè)地址中的字符“amp;”替換成空格,才能是正確的網(wǎng)頁(yè)地址;查詢(xún)已經(jīng)在數(shù)據(jù)庫(kù)中的公眾號(hào)推文編號(hào),給爬取的公眾號(hào)推文進(jìn)行編號(hào),最后存入數(shù)據(jù)庫(kù)。
微信公眾號(hào)推文爬蟲(chóng)的核心程序如下:
圖3 是一個(gè)網(wǎng)上推文,圖4 是開(kāi)發(fā)的爬蟲(chóng)爬取該推文放到公眾號(hào)的界面。
圖3 網(wǎng)上推文
圖4 公眾號(hào)上爬取的網(wǎng)上推文
今日頭條有豐富的實(shí)時(shí)新聞,新聞爬蟲(chóng)可爬取今日頭條的熱點(diǎn)新聞。其工作原理是運(yùn)用抓包爬取模塊爬取今日頭條熱點(diǎn)的新聞數(shù)據(jù)傳輸包;應(yīng)用json 解析庫(kù)解析新聞數(shù)據(jù)包,獲取新聞的標(biāo)題、簡(jiǎn)介、網(wǎng)頁(yè)部分地址、圖片地址;并將網(wǎng)頁(yè)部分網(wǎng)址生成完整的網(wǎng)頁(yè)網(wǎng)址;查詢(xún)已經(jīng)在數(shù)據(jù)庫(kù)中的新聞爬蟲(chóng)編號(hào),給現(xiàn)爬取的新聞進(jìn)行編號(hào),最后存入數(shù)據(jù)庫(kù)。
微信公眾號(hào)新聞爬蟲(chóng)的核心程序如下:
圖5 是今日頭條新聞,圖6 是開(kāi)發(fā)的爬蟲(chóng)爬取該新聞放到公眾號(hào)的界面。
圖5 今日頭條新聞
圖6 公眾號(hào)上爬取的新聞
糗事百科的笑話(huà)中有非常豐富的搞笑素材,段子爬蟲(chóng)可運(yùn)用源碼爬取糗事百科網(wǎng)頁(yè)中的段子笑話(huà)。通過(guò)分析發(fā)現(xiàn),糗事百科的笑話(huà)內(nèi)容被標(biāo)簽包裹,為避免使用css 選擇器時(shí)返回的數(shù)據(jù)格式不正確,用Python的分割函數(shù)split()將源代碼切割成n個(gè)分段,每個(gè)分段有一個(gè)笑話(huà)內(nèi)容。段子爬蟲(chóng)通過(guò)BeautifulSoup的css選擇器提取每個(gè)分段中的段子信息,查詢(xún)已經(jīng)在數(shù)據(jù)庫(kù)中的段子爬蟲(chóng)編號(hào),給現(xiàn)爬取的段子進(jìn)行編號(hào),最后存入數(shù)據(jù)庫(kù)。圖7是糗事百科的笑話(huà),圖8是開(kāi)發(fā)的段子爬取該段子放到公眾號(hào)的界面。
圖7 糗事百科笑話(huà)
圖8 公眾號(hào)上爬取的笑話(huà)
微信公眾號(hào)段子爬蟲(chóng)的核心程序如下:
在當(dāng)代,微信用戶(hù)很多。為了更便捷的發(fā)布消息或者為了給企業(yè)做廣告,很多單位甚至個(gè)人注冊(cè)并使用公眾號(hào),但是很多公眾號(hào)被受眾關(guān)注得不多,主要原因是這些公眾號(hào)難以提供有質(zhì)量的推文和服務(wù)。針對(duì)公眾號(hào)不能自動(dòng)推送消息,本文采用Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)對(duì)公眾號(hào)進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)了對(duì)公眾號(hào)推文、網(wǎng)絡(luò)新聞、網(wǎng)絡(luò)笑話(huà)等信息的自動(dòng)推送,為校園文化建設(shè)提供了可行方案。