微信公眾號文章采集器系統
優(yōu)采云 發(fā)布時(shí)間: 2020-08-07 20:19已經(jīng)快兩個(gè)星期了. 我已經(jīng)在微信公眾號上調試了商品采集器系統,最后一切都很好,但是在此期間,我遇到了很多問(wèn)題. 讓我們今天回顧一下并進(jìn)行總結. 我希望它會(huì )有用. 朋友可以學(xué)習.
1. 我做了兩個(gè)履帶. 我第一次害怕Phoenix.com時(shí),沒(méi)有任何限制,我可以隨意爬網(wǎng),所以我放松了對自動(dòng)代碼執行模塊的警惕. 我認為這很簡(jiǎn)單,但事實(shí)并非如此. 我已經(jīng)為這個(gè)問(wèn)題困擾了好幾天,幾乎是四天. 由于搜狗的限制,獲得相同IP的次數越來(lái)越多. 首先,顯示驗證碼,其次是訪(fǎng)問(wèn)限制. 直接無(wú)法訪(fǎng)問(wèn). 根據請求,您得到的是訪(fǎng)問(wèn)次數太頻繁,這種提示,因此在開(kāi)發(fā)過(guò)程中最麻煩的不是代碼的編寫(xiě),而是測試. 編寫(xiě)后無(wú)法立即測試該代碼. 我相信大多數程序員都不會(huì )喜歡,我現在編寫(xiě)的程序每天執行3次. 這樣的頻率很好,并且因為它是由多個(gè)官方帳戶(hù)采集的,所以每個(gè)官方帳戶(hù)之間也要有間隔,否則它將同時(shí)訪(fǎng)問(wèn)十多個(gè)公眾,該帳戶(hù)上的數百篇文章也不切實(shí)際. 在插入句子時(shí),如何使每個(gè)正式帳戶(hù)都不敢玩,等待特定的時(shí)間段,執行下一個(gè),最后使用setInterval函數來(lái)解決它,
每80秒執行一個(gè)正式帳戶(hù),并將每個(gè)執行代碼寫(xiě)入hello. 泡沫距離有點(diǎn)遠. 我會(huì )收到的. 我們來(lái)談?wù)刢ron程序包,它是自動(dòng)執行的. npm官方網(wǎng)站上僅舉了一個(gè)例子,但是我的意思是桑拿浴可能有點(diǎn)壓抑. 我無(wú)法播放,但了解其用法. 然后我說(shuō),如果我聽(tīng)不懂怎么辦. 在Internet,百度和cron程序包的特定用法上進(jìn)行搜索. 有很多,所以我只是看了看,但是經(jīng)過(guò)仔細的分析卻并非如此. 都是廢話(huà),沒(méi)用. 一般在線(xiàn)使用中都有一個(gè)問(wèn)號,但是當我添加一個(gè)問(wèn)號時(shí),會(huì )出現錯誤. 是的,這都是胡說(shuō)八道. 最后,我在同學(xué)小組的一個(gè)前端技術(shù)討論小組中說(shuō)了這一點(diǎn). 真正熱情的小組朋友找到了我一個(gè)鏈接. 我進(jìn)去看看,嘗試了一下,沒(méi)關(guān)系,所以,非常感謝這位幫助我解決難題的同學(xué). 我將再次附上QQ群組號碼和鏈接,以幫助您在閱讀本文時(shí)學(xué)習. QQ組號: 435012561,鏈接: ,鏈接說(shuō)的沒(méi)問(wèn)題,至少可以用,這里我仍然有一個(gè)問(wèn)題,就是時(shí)區,我們以前用過(guò)一次,使用洛杉磯時(shí)間,但是這次顯然不起作用,我們需要用中文,但是我在北京嘗試了幾次,雖然不好,但是重慶可以,所以我用了重慶.
2. 我想在這里談?wù)摰氖菑牡刂窓讷@取參數的問(wèn)題. 我做的最后一個(gè)很好,但是我不知道該怎么做. 我從地址欄中得到的最后一個(gè)是數字,但是這個(gè)是它的. 它是一個(gè)字符串,并且mongodb中對字段的要求仍然非常嚴格,因此分頁(yè)功能困擾了我幾個(gè)小時(shí). 它是如何解決的?我在mongodb中添加了一個(gè)討論組. 我問(wèn)其中有什么問(wèn)題,并發(fā)布了屏幕截圖. 有一個(gè)熱心的網(wǎng)民說(shuō),傳入數據的格式顯然不正確. 我喚醒了做夢(mèng)者,我說(shuō)了是,然后我使用Number()函數來(lái)處理我得到的參數,以便字符串類(lèi)型的數量成為數字類(lèi)型的數量. 很好,因此在使用mongodb時(shí),必須注意存儲數據的格式.
3. Mongodb查詢(xún)數據語(yǔ)句的組織:
坦率地說(shuō),實(shí)際上是使用了限制和跳過(guò)這兩個(gè)函數,但是特定的格式可能是樂(lè )觀(guān)的,并且mine是可接受的參數,但是mongo的參數接受很容易直接編寫(xiě),不需要喜歡sql像$ {“”}一樣. 下面的排序功能說(shuō)明了排序方法. 這里,ctime字段設置為標準,-1表示逆序,1表示正序,
4. 在這段代碼編寫(xiě)中,我第一次使用了try catch方法進(jìn)行糾錯. 原來(lái)沒(méi)關(guān)系. 偶爾的錯誤可以正常地打印出來(lái),但是它不會(huì )影響代碼的整體執行,或者說(shuō)到下一次執行,整體感覺(jué)非常好,
對于特定用法,將您要執行的代碼放入try中,并在最后添加一行,并拋出Error();
然后傳入參數e以進(jìn)行捕獲,可以在catch中打印很多消息,我只打印了其中之一,例如e.message
5. anync包主要用于此編碼過(guò)程中,其中的ansyc.each循環(huán),ansyc.waterfall在執行完上述操作后可以執行以下操作,也可以在您之間的上下傳遞參數,這非常重要的是,因為在此編程中,每次獲取的內容都不同,每個(gè)代碼執行的條件也不同,也就是說(shuō),所需的參數也不同,即,下一個(gè)代碼執行可能需要上一個(gè)代碼. 執行,所以這個(gè)anync軟件包真的值得研究. 他的每種方法都不相同,有時(shí)可能會(huì )得到意想不到的結果.
6. 在mysql中,如果要實(shí)現這樣的效果,即如果它已經(jīng)存在于數據庫中,則忽略它,或者不重復存儲它;如果它不存在于數據庫中,則將其存儲在其中. 用replace替換插入數據的插入. 但是在mongodb中,應該沒(méi)有,或者我還沒(méi)有找到它. 我用這種方法解決了. 我定義了一個(gè)開(kāi)關(guān)來(lái)使該開(kāi)關(guān)為真. 在每次存儲之前,循環(huán)所有數據以查看是否有該數據,如果沒(méi)有,則讓開(kāi)關(guān)變?yōu)榧?,否則,繼續執行,即判斷此時(shí)開(kāi)關(guān)是真還是假,如果為true,則執行插入操作;如果為false,則將其忽略. 這樣可以達到類(lèi)似的效果,否則每次都會(huì )存儲大量重復數據,
7. 該集合的核心是我文件中的common.js. 首先,因為我們要采集,所以我們需要使用請求包. 采集后,我們需要以html格式處理數據,以便可以使用類(lèi)似于jquery的數據. 對于該操作,cheerio包已使用了很長(cháng)時(shí)間,然后在循環(huán)采集時(shí)將使用anync.each方法,因此將使用異步包,
7-1,
通過(guò)采集搜狗微信,我們必須分析搜狗微信的路徑. 每個(gè)官方帳戶(hù)頁(yè)面的路徑都是這樣
?。8%BF%99%E6%89%8D%E6%98%AF%E6%97%A5%E6%9C%AC&ie = utf8&_sug_ = n&_sug_type _ =
這是“這是日本”頁(yè)面的鏈接. 經(jīng)過(guò)分析,所有正式帳戶(hù)的鏈接僅在查詢(xún)后的參數上有所不同,但是查詢(xún)后的參數是什么,實(shí)際上,它是由encodeURIComponent()函數轉換的,之后是“這是日本”,因此相同. 要獲得該官方帳戶(hù),只需對官方帳戶(hù)的名稱(chēng)進(jìn)行編碼并將其動(dòng)態(tài)組合成一個(gè)鏈接,您就可以在訪(fǎng)問(wèn)時(shí)輸入每個(gè)鏈接,但是我只是要求此頁(yè)面此鏈接,
不是
此頁(yè)面,因此進(jìn)一步的處理是獲取當前頁(yè)面的第一內容的鏈接,即href
獲得此鏈接后,您會(huì )發(fā)現他具有自己的加密方法. 實(shí)際上非常簡(jiǎn)單,就是在鏈接中增加三個(gè)安培;更換這三個(gè)放大器;在帶有空鏈接的鏈接中,就好了,這是第一步,獲取每個(gè)官方帳戶(hù)的頁(yè)面鏈接,
7-2
獲取鏈接后,有必要訪(fǎng)問(wèn),即請求,請求每個(gè)地址,獲取每個(gè)地址的內容,但每個(gè)頁(yè)面上顯示的內容不在該頁(yè)面中,即在html結構中,隱藏在js中,因此我們需要通過(guò)常規匹配來(lái)獲取每篇文章的對象,然后循環(huán)訪(fǎng)問(wèn)每個(gè)正式帳戶(hù)的對象以獲取有關(guān)該對象中每篇文章的一些信息,包括標題,縮略圖,摘要,URL,時(shí)間, 5個(gè)字段,但我使用的代碼很爛,而我當時(shí)使用的是
Object.Attribute.foreach(function(item,index){
})
這種可怕的方法,最后要做的就是編寫(xiě)一個(gè)循環(huán)以完全獲取每個(gè)對象,否則只能獲取第一個(gè)對象. 在這里,您應該使用async.each或async.foreach. 可以使用兩種方法中的每一種,并且它們都非常易于使用. 這樣,您將獲得上述每篇文章的基本新聞.
7-3,
第三階段是進(jìn)入每篇文章的詳細信息頁(yè)面,并獲取每篇文章的內容,喜歡的次數,作者,官方帳號,閱讀量和其他數據. 這里遇到的主要問(wèn)題是人們的內容直接位于js中,并且所有img標簽都有問(wèn)題. 它們以這種形式存儲在內容中,但是在這種情況下,由于標簽,html文檔(我不知道此類(lèi)img標簽)存在問(wèn)題,此類(lèi)圖像無(wú)法顯示在我們的網(wǎng)頁(yè)上,因此在這里我們需要進(jìn)行一些處理,替換全部與
p%0A/p
p%E8%BF%99%E6%A0%B7%E7%9A%84%E8%AF%9D%E5%B0%B1OK%E4%BA%86%EF%BC%8C%E4%BD% 86%E6%98%AF%E6%88%91%E5%9C%A8%E7%BC%96%E7%A8%8B%E7%9A%84%E6%97%B6%E5%80%99% E8%BF%9B%E8%A1%8C%E5%88%B0%E8%BF%99%E5%84%BF%E7%A2%B0%E5%88%B0%E4%BA%86%E4% B8%80%E4%B8%AA%E5%82%BB%E9%80%BC%E9%97%AE%E9%A2%98%EF%BC%8C%E6%88%91%E5%B0% 86%E8%BF%99%E6%A0%B7%E7%9A%84%E5%BE%97%E5%88%B0%E7%9A%84content%EF%BC%8C%E6%94%BE% E5%88%B0html%E4%B8%AD%E5%8F%AF%E4%BB%A5%EF%BC%8C%E4%BD%86%E6%98%AF%E5%AD%98%E5% 88%B0mongodb%E4%B8%AD%EF%BC%8C%E6%AF%8F%E4%B8%AA%E5%BC%95%E5%8F%B7%E7%9A%84%E5%89% 8D%E9%9D%A2%E8%8E%AB%E5%90%8D%E5%85%B6%E5%A6%99%E7%9A%84%E5%A4%9A%E4%BA%86% E4%B8%80%E6%9D%A1%E6%9D%A0%EF%BC%8C%E6%AF%8F%E4%B8%AAimg%E6%A0%87%E7%AD%BE%E5% A4%9A%E4%BA%86%E4%B8%89%E6%9D%A1%E6%9D%A0%EF%BC%8C%E8%BF%99%E6%A0%B7%E7%9A% 84%E8%AF%9D%E5%B0%B1%E5%8F%88%E4%B8%8D%E5%8F%AF%E4%BB%A5%E6%98%BE%E7%A4%BA% E4%BA%86%EF%BC%8C%E6%88%91%E5%B0%B1%E4%B8%80%E7%9B%B4%E7%BA%A0%E7%BB%93%E5% 95%8A%EF%BC%8C%E6%80%8E%E4%B 9%88%E8%83%BD%E5%AD%98%E5%82%A8%E7%9A% 84%E6%97%B6%E5%80%99%E4%B8%8D%E8%A6%81%E8%BF%99%E4%B8%89%E6%9D%A1%E6%9D%A0% E5%91%A2%EF%BC%8C%E7%BB%8F%E8%BF%87%E4%BA%86%E4%B8%80%E7%95%AA%E8%89%B0%E8% 8B%A6%E5%8D%93%E7%BB%9D%E7%9A%84%E6%96%97%E4%BA%89%EF%BC%8C%E6%9C%80%E5%90% 8E%E8%BF%98%E6%98%AF%E6%B2%A1%E8%83%BD%E8%A7%A3%E5%86%B3%E4%BA%86%EF%BC%8C% E6%9C%80%E5%90%8E%E5%8A%A0%E4%BA%86%E4%B8%80%E4%B8%AAmongodb%20%E7%9A%84%E8%AE%A8% E8%AE%BA%E7%BE%A4%EF%BC%8C%E6%88%91%E8%BF%9B%E5%8E%BB%E9%97%AE%E4%BA%86%E4% B8%80%E4%B8%8B%EF%BC%8C%E6%9C%89%E4%B8%80%E4%B8%AA%E5%A4%A7%E7%A5%9E%E7%AB% 8B%E9%A9%AC%E8%AF%B4%EF%BC%8C%E4%BD%A0%E7%9F%A5%E9%81%93%E4%BB%80%E4%B9%88% E6%98%AF%E8%BD%AC%E4%B9%89%E5%AD%97%E7%AC%A6%E5%90%97%EF%BC%9F%E6%88%91%E5% BD%93%E6%97%B6%E5%BE%88%E6%87%B5%E9%80%BC%E5%95%8A%EF%BC%8C%E6%88%91%E8%87% AA%E8%AE%A4%E4%B8%BA%E6%88%91%E7%9F%A5%E9%81%93%E5%95%8A%EF%BC%8C%E4%BA%BA% E5%AE%B6%E8%AF%B4%EF%BC%8C%E4%BD%A0%E7%9A%84%E7%BE%A4%E5%A4%87%E6%B3%A8%E8% BF%98%E6%98%AF%E5%89%8D%E7%AB%AF%EF%BC%8C%E4%BD%A0%E5%8 1%9A%E5%89%8D%E7%AB %AF%E 7%9A%84%E4%B8%8D%E6%98%8E%E7%99%BD%E8%BF%99%E6%98%AF%E8%BD%AC%E4%B9%89%E5% AD%97%E7%AC%A6%E5%90%97%EF%BC%9F%E6%88%91%E5%B0%B1%E6%9B%B4%E5%8A%A0%E6%87% B5%E9%80%BC%E4%BA%86%EF%BC%8C%E7%84%B6%E5%90%8E%E8%BF%87%E4%BA%86%E4%B8%80% E4%BC%9A%E5%84%BF%E6%88%91%E6%89%8D%E6%98%8E%E7%99%BD%E8%BF%87%E6%9D%A5%EF% BC%8C%E8%BF%99%E4%B8%AA%E6%98%AF%E5%AD%98%E5%82%A8%E7%9A%84%E6%97%B6%E5%80% 99%E8%A2%AB%E8%BD%AC%E4%B9%89%E4%BA%86%EF%BC%8C%E4%BD%86%E6%98%AF%E5%BD%93% E4%BB%8E%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BB%E7%9A%84%E6%97%B6%E5%80%99%EF% BC%8C%E5%B0%B1%E8%87%AA%E5%8A%A8%E6%9C%89%E6%B2%A1%E6%9C%89%E4%BA%86%EF%BC% 8C%E6%89%80%E4%BB%A5%E8%AF%B4%E5%8F%AA%E6%9C%89%E5%AD%98%E5%9C%A8%E6%95%B0% E6%8D%AE%E5%BA%93%E4%B8%AD%E7%9A%84%E6%95%B0%E6%8D%AE%E6%9C%89%E4%B8%89%E6% 9D%A1%E6%9D%A0%EF%BC%8C%E5%8E%9F%E5%A7%8B%E6%95%B0%E6%8D%AE%E5%92%8C%E8%AF% BB%E5%8F%96%E5%87%BA%E6%9D%A5%E7%9A%84%E6%95%B0%E6%8D%AE%E9%83%BD%E6%B2%A1% E6%9C%89%EF%BC%8C%E7%9C%9F%E6%98%AF%E5%AE%8C%E7%BE%8E%E5%95%8A%EF%BC%81/p
p%0 A/p
p8%E3%80%81%E6%9C%80%E5%90%8E%E6%83%B3%E8%AF%B4%E4%B8%80%E7%82%B9%EF%BC %8C%E8%BF%99%E6%AC%A1%E6%98%AF%E6%88%91%E7%AC%AC%E4%B8%80%E6%AC%A1%E6%8E%A5 %E8%A7%A6%E6%9C%89%E9%AA%8C%E8%AF%81%E7%A0%81%E7%9A%84%E7%BD%91%E9%A1%B5%E8 %AF%B7%E6%B1%82%EF%BC%8C%E8%BF%99%E9%87%8C%E7%94%A8%E5%88%B0%E4%BA%86%E9%98 %BF%E9%87%8C%E4%B8%80%E4%B8%AA%E6%9C%8D%E5%8A%A1%EF%BC%8C%E8%AF%86%E5%88%AB %E9%AA%8C%E8%AF%81%E7%A0%81%EF%BC%8C/p
p%0A/p
pEND!/p
p/ body / html" />