0 行代碼就能把公眾號文章評論爬下來,有點聳人聽聞?如果我跟你說是用 Python 實現的,你可能會信了,因為 Python 確實很強大,寫個簡單爬蟲真的只要幾行代碼就可以搞定,這次爬的是微信的數據,相對來說要麻煩一點。這里討論的是如何爬自己公眾號下面文章的評論,有人說別人文章能抓取嗎?理論上都可以,但凡是你能看到的都可以爬,不過,這篇文章討論的是自己文章,思路都是相通的,希望本文可以給你一些啟迪。
1、獲取Cookie
因為是爬自己微信號文章里面的評論,首先你需要登錄公眾號后臺,登錄后才能看到文章的評論,登錄就會涉及到 cookie,發起請求時只有帶上 cookie 才能得到正確的數據。所以第一步就是把 cookie 信息取到。
打開 Chrome 瀏覽器你會看到發送請求時會自動把 Cookie 信息發送給微信,我們就把這段 Cookie 數據拷貝出來,用 Python 構建一個 Cookie 對象,給 requests 使用。
from http.cookies import SimpleCookie
raw_cookie = "gsScrollPos-5517=; ..中間還省略很多... bizuin=2393828"
cookie = SimpleCookie(raw_cookie)
requests_cookies = dict([(c, cookie[c].value) for c in cookie])
r = requests.get(url, cookies=requests_cookies)
2、構造URL
打開任意文章的評論列表,你會發現它的 URL 結構非常清晰,根據名字基本能判斷每個參數的意義,這里比較重要的參數是 begin,它是作為分頁的起始位置,其實它固定不變就好
url = "https://mp.weixin.qq.com/misc/appmsgcomment?" \
"action=list_comment&" \
"mp_version=7&" \
"type=0&" \
"comment_id=2881104117&" \ # 被評論的文章ID
"begin=0&" \ # 分頁參數
"count=10&" \ # 每次返回10條評論
"token=1300595798&" \
"lang=zh_CN"
3、抓取數據
把 Cookie 和 URL 都搞清楚了,就可以把模擬瀏覽器抓取數據并進行清洗,開始想著用 BeautifulSoup 來解析網頁,結果失敗了。
查找了原因,把爬下來的頁面另存為 html 文件,在 html 源代碼文件中找留言里面的關鍵字,發現評論并沒有在 div 標簽中,而是存在于一段 JS 代碼塊中,看起來像 JSON 數據,看來數據是在本地用 JavaScript 渲染后顯示的。
于是改用正則表達式,截取需要的數據,最終存儲數據庫,差不多10代碼搞定。
def main():
# 普通留言, 精選留言總數
normal_count, selected_count = 141, 100
# 普通留言url
normal_url = "https://mp.weixin.qq.com/misc/appmsgcomment?"
dd = dict([(normal_count, selected_url)])
for k, v in dd.items():
crawler(k, v)
def crawler(count, url):
for i in range(0, count, 10):
r = requests.get(url.format(begin=i), cookies=requests_cookies)
match = re.search(r'"comment":(\[\{.*\}\])', r.text, re.S)
if match:
data = json.loads(match.group(1), encoding="utf-8")
conn.insert_many(data)
time.sleep(1)
文章作者:劉志軍
文章來源:Python之禪
,這就是最近,很火的公眾號圖文彈幕,已經看到很多微信公眾號在發彈幕了。
木木在閑暇時,也玩了一下,就是上面所示了。
其實,這個也是利用HTML代碼來實現的,基本上就是網頁上可實現的效果圖文化,當然前提是用的微信公眾號可兼容的一些代碼元素。這里是用得SVG標簽,非常厲害的一個標簽,能夠實現的效果很多,這樣滾動彈幕只是一小點,有興趣的可以去了解。
這里,就結合代碼給大家簡單介紹一下。大家可以根據代碼做對應的調整,做出自己想要的微信公眾號圖文彈幕。
下面就是實現這個效果的后臺代碼:
我簡單標注了一下,第一個紅框里面的大家基本不用管,就是第2-5行,大家可以對應調整一下彈幕界面的邊框、上下邊距和寬度。
然后,第12/13行,大家可以調整彈幕效果區域的寬和高度,至于單位,大家用像素PX和em都是可以的。(1em=16px)
接著,第二個紅框就是每一個滾動的字幕了。從就是一段彈幕文字的代碼,一個這樣的區域就是一段文字。其中Y、X是控制文字的起始位置,fill是控制文字顏色,font-size是文字大小,這些大家都可以自行調整。
最后我單獨又標出來一個框,因為這個是彈幕的重點所在,控制的是彈幕效果。attributename="x"控制的是滾動方向,from和to就是從哪里滾動到哪里,然后begin是控制文字什么時間開始滾動,dur=“10s”就是表示經過10s后滾動到目的地。
好了,經過上面簡單介紹,相信大家應該能輕松根據代碼做出自己的微信公眾號彈幕。
另外,這個彈幕也可以直接在圖片上的,只不過在上面的基礎上需要多加入一張用作背景的圖片,如下:
最后,本來準備直接把彈幕代碼丟給大家的,不過無意中發現i排版上面已經把這種形式直接做進去了,相信其他一些微信排版平臺也會慢慢放進去。也好,那就省得我麻煩了,大家只需要過去,找到彈幕,然后根據上面介紹的,修改相關信息,達到你想要的效果就可以了。
就到這里,再聊!
木木博客,個人微信號:809472503,公眾號:mumuseo。這是一個新鮮、有趣、有料的運營營銷、新媒體、廣告文案學習平臺。
所有人都在營銷,不一定每個人都在做營銷。不要假裝你都懂,你的那些麻煩問題可能都會在這解決!等你。
對于基礎功能的實現,不需要開發人員介入。業務人員通過可視化頁面,即可完成設計。從這個角度上看,低碼平臺面向的用戶是業務人員、系統管理員、實施顧問等角色。
但是,是否具備持續的產品迭代能力,是衡量產品生命力的主要依據。產品能否與時俱進,能否滿足逐漸復雜的用戶需求,也是判斷產品是否有競爭力的主要指標。
低碼平臺要能夠支持復雜的邏輯處理,支持開發人員的參與。這要求從這個角度上看,低碼平臺面向的用戶是程序員、設計師等角色。
低碼平臺相比傳統開發模式,大部分的需求可以通過低碼平臺的可視化頁面實現。無需開發人員介入,具備更高的開發效率和更低的開發門檻。應用發布也更快速,支持在線編譯、打包、發布。
基于最先進的云原生技術搭建,整合了Kubernetes、微服務、Serverless、NoSQL 等最先進的技術架構,并提供了完善的自動化開發測試工具與運維管理工具。
低碼平臺主要由以下幾個部分組成:
建模引擎
基于模型驅動,內置功能強大的建模引擎,零代碼也能快速創建智能化、移動化的企業應用程序。
通過實體、數據結構、枚舉等構建低代碼數據模型。可視化定義數據之間的關聯關系,平臺自動生成數據庫表和通用接口。
表單引擎
基于模板創建頁面或在空白頁面上通過拖、拉、拽組件的方式完成頁面搭建。平臺提供標準化組件,以及組件擴展能力,可維護自有組件庫。
流程引擎
涵蓋了流程設計、流程運行、管理維護、統計分析與流程優化等各類工具,幫助企業快速部署、有效監控并持續優化業務流程。
低代碼平臺集成流程引擎,支持BPMN2.0規范的業務流程開發,并在此基礎上進行了模型和符號標準化。
可支持常規流程的快速開發,如請假、入職、離職等企業內常用流程。
報表引擎
無需開發人員幫助,業務人員也能配置出功能強大的統計報表。報表運行時自動按當前用戶權限過濾報表數據,動態顯示業務統計結果。
可通過拖拽組件的方式實現折線圖、柱狀圖、餅狀圖、散點圖等。
也可在有數BI產品上完成從數據到模型再到報表的設計,低代碼可以直接將生成的復雜報表集成到應用中。
API 引擎
基于業務模型,動態生成業務數據的API接口。可以在第三方應用、小程序、手機端中調用。
企業存量接口可通過低代碼平臺快速導入,并自動接入API網關。提供可視化定義接口能力,并將接口自動接入API網關。
代碼引擎
可以使用傳統方式編寫代碼,并可與可視化設計界面雙向同步。對于可視化界面不能實現的業務功能,均可通過傳統方式編寫前后端代碼實現。
作者:在代碼的世界里自由自在
鏈接:https://blog.codeiy.com
來源:微信公眾號-在代碼的世界里自由自在
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。