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

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統(tǒng) 1790 0

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

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

爬蟲

首先通過首頁進入,可以按照類別抓取,通過“查看更多”可以找出頁面鏈接規(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
          

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

            
reProfile = r'
            
  • 進入詳情頁面可以獲取公眾號的 名稱/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)了一款異步增強版的 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ù)有機會再做更新。

    安裝 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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

    【本文對您有幫助就好】

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

    發(fā)表我的評論
    最新評論 總共0條評論
    主站蜘蛛池模板: 佛教| 游戏| 白水县| 阿城市| 敖汉旗| 东港市| 太仆寺旗| 正阳县| 岳阳市| 乌兰浩特市| 丹凤县| 柘荣县| 富平县| 壶关县| 琼中| 玉环县| 永川市| 洛南县| 青龙| 睢宁县| 罗甸县| 彭阳县| 蚌埠市| 洞口县| 沈丘县| 昌乐县| 涟源市| 衡东县| 平原县| 垦利县| 彰武县| 满城县| 泊头市| 怀柔区| 东乌| 孙吴县| 马边| 沛县| 昂仁县| 都昌县| 临洮县|