([\s\S]*?)'Entry="http://weixin" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python 抓取微信公眾號賬號信息的方法

系統(tǒng) 1777 0

Python 抓取微信公眾號賬號信息的方法_第1張圖片

搜狗微信搜索提供兩種類型的關(guān)鍵詞搜索,一種是搜索公眾號文章內(nèi)容,另一種是直接搜索微信公眾號。通過微信公眾號搜索可以獲取公眾號的基本信息及最近發(fā)布的10條文章,今天來抓取一下微信公眾號的賬號信息

爬蟲

首先通過首頁進(jìn)入,可以按照類別抓取,通過“查看更多”可以找出頁面鏈接規(guī)則:

Python 抓取微信公眾號賬號信息的方法_第2張圖片

            
import requests as req
import re
reTypes = r'id="pc_\d*" uigs="(pc_\d*)">([\s\S]*?)'
Entry = "http://weixin.sogou.com/"
entryPage = req.get(Entry)
allTypes = re.findall(reTypes, getUTF8(entryPage))
for (pcid, category) in allTypes:
  for page in range(1, 100):
    url = 'http://weixin.sogou.com/pcindex/pc/{}/{}.html'.format(pcid, page)
    print(url)
    categoryList = req.get(url)
    if categoryList.status_code != 200:
      break
          

上面代碼通過加載更多頁面獲取加載列表,進(jìn)而從其中抓取微信公眾號詳情頁面:

            
reProfile = r'
            
  • 進(jìn)入詳情頁面可以獲取公眾號的 名稱/ID/功能介紹/賬號主體/頭像/二維碼/最近10篇文章 等信息:

    Python 抓取微信公眾號賬號信息的方法_第3張圖片 ?

    注意事項

    詳情頁面鏈接: http://mp.weixin.qq.com/profile?src=3&timestamp=1477208282&ver=1&signature=8rYJ4QV2w5FXSOy6vGn37sUdcSLa8uoyHv3Ft7CrhZhB4wO-bbWG94aUCNexyB7lqRNSazua-2MROwkV835ilg==

    1. 驗證碼

    訪問詳情頁面時有可能需要驗證碼,自動識別驗證碼還是很有難度的,因此要做好爬蟲的偽裝工作。

    2. 未保存詳情頁面鏈接

    詳情頁面的鏈接中有兩個重要參數(shù): timestamp & signature ,這說明頁面鏈接是有時效性的,所以保存下來應(yīng)該也沒用;

    3. 二維碼

    二維碼圖片鏈接同樣具有時效性,因此如需要最好將圖片下載下來。

    用 Flask 展示結(jié)果

    最近 Python 社區(qū)出現(xiàn)了一款異步增強(qiáng)版的 Flask 框架: Sanic ,基于 uvloop 和 httptools ,可以達(dá)到異步、更快的效果,但保持了與 Flask 一致的簡潔語法。雖然項目剛起步,還有很多基本功能為實現(xiàn),但已經(jīng)獲得了很多關(guān)注( 2,222 Star )。這次本打算用抓取的微信公眾號信息基于 Sanic 做一個簡單的交互應(yīng)用,但無奈目前還沒有加入模板功能,異步的 redis 驅(qū)動也還有 BUG 沒解決,所以簡單嘗試了一下之后還是切換回 Flask + SQLite,先把抓取結(jié)果呈現(xiàn)出來,后續(xù)有機(jī)會再做更新。

    安裝 Sanic

    Python 抓取微信公眾號賬號信息的方法_第4張圖片

    Debug Sanic

    Python 抓取微信公眾號賬號信息的方法_第5張圖片 ?

    Flask + SQLite App

                
    from flask import g, Flask, render_template
    import sqlite3
    app = Flask(__name__)
    DATABASE = "./db/wx.db"
    def get_db():
      db = getattr(g, '_database', None)
      if db is None:
        db = g._database = sqlite3.connect(DATABASE)
      return db
    @app.teardown_appcontext
    def close_connection(exception):
      db = getattr(g, '_database', None)
      if db is not None:
        db.close()
    @app.route("/
                
                  ")
    @app.route("/")
    def hello(page=0):
      cur = get_db().cursor()
      cur.execute("SELECT * FROM wxoa LIMIT 30 OFFSET ?", (page*30, ))
      rows = []
      for row in cur.fetchall():
        rows.append(row)
      return render_template("app.html", wx=rows, cp=page)
    if __name__ == "__main__":
      app.run(debug=True, port=8000)
                
              

    總結(jié)

    以上所述是小編給大家介紹的Python 抓取微信公眾號賬號信息,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
    如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!


    更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

    微信掃碼或搜索:z360901061

    微信掃一掃加我為好友

    QQ號聯(lián)系: 360901061

    您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

    【本文對您有幫助就好】

    您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

    發(fā)表我的評論
    最新評論 總共0條評論
    主站蜘蛛池模板: 亚洲国产一区在线二区三区 | 日本一区二区中文字幕 | 国产一级高清视频 | 高清在线一区二区三区亚洲综合 | 久久久久久久久久免费视频 | 91亚洲精品一区二区福利 | 欧美特黄一级大黄录像 | 日日操操 | 免费黄色福利 | 色综合久久六月婷婷中文字幕 | 深夜在线观看网站 | 日韩欧美亚洲国产精品字幕久久久 | 日日插天天干 | 亚洲视频免费在线播放 | 国产免费不卡视频 | 国产成人免费a在线资源 | 日日天干夜夜人人添 | 欧美三级在线观看不卡视频 | 国产成人免费不卡在线观看 | 亚洲和欧美毛片久久久久 | 国产一区二区不卡 | 亚洲欧洲视频在线 | 国产3344永久在线观看视频 | 久久久精品免费视频 | 夭天干天天做天天免费看 | 日韩欧美一级毛片在线 | 亚洲视频www| 精品久久久久不卡无毒 | 射综合网 | s级毛片 | 日本中文一二区有码在线观看 | 啪啪综合网 | 1000部羞羞禁止免费观看视频 | 亚洲另类精品综合 | 成人久久久久 | 婷婷涩 | 第一序列番外篇在哪里看 | 免费视频一级片 | 337p日本欧洲亚洲大胆艺术 | 国模和精品嫩模私拍视频 | 国产一级淫片a免费播放口欧美 |