公共マイクロチャンネル番号をクロールコードの50行すべての記事

#の今日の目標
 
**公共のマイクロチャネル番号**すべての記事をクロールし、コードの50行

今日は公共マイクロチャンネル番号をクロールされ、公共の番号をクロールする2つの一般的な方法があります。まず、唯一の欠点最新記事のための10回のプッシュで、Sogouの検索を介して取得する、
今日はより便利に、他の方法に比べて、PCのキャプチャーマイクロチャネルのアプローチの仕方によって国民を取得するには、別の資料番号を導入しました。
分析:我々は、すべての記事がドロップダウンリフレッシュ要求mp.weixin.qq.comならないために起こっていることがわかっ / MPが/ ホームリンクを追加しないXXXませ公共、xxxはprofile_ext)このインタフェースを表します。
:いくつかのテストは、以下のパラメータを分析するために使用された後
__bizを:ユーザと公衆の間で一意のID番号、
UIN:ユーザーのプライバシーのID 
キー:秘密鍵の要求、一定の期間は無効となります。
オフセット:オフセット
数:あたりの要求の数
 *コードの実装* 
`` ` 
インポート要求
 のインポートJSON
 のインポート時間を
 から pymongo インポートMongoClient 

URL = http://mp.weixin.qq.com/mp/xxx (ホームリンクを追加していないん公共、xxxはprofile_extを表していない)

Mongoの構成 
CONN = MongoClient(' 127.0.0.1 '、27017 
デシベル = conn.wx   接続WXデータベース、それが自動的に作成されません 
mongo_wx = db.article   #を記事を使用してセット、自動的に作成されていない

DEF get_wx_article(BIZ、UIN、キー、インデックス= 0、COUNT = 10 ):
    オフセット =(インデックス+ 1)* COUNT 
    のparams = {
         ' __biz ' BIZ、:
         ' UIN ' :UIN、
         ' キー:キーは、
         オフセット":オフセット
         ' カウント' :カウント、
         ' 作用'' GETMSG ' ' F '' JSON ' 
    } 

    ヘッダー = {
         ' のUser-Agent '' のMozilla / 5.0(Windows NTの10.0; Win64の、のx64)のAppleWebKit / 537.36 (KHTML、ヤモリ等)クローム/ 74.0.3729.131サファリ/ 537.36 ' 
    } 

    応答 = requests.get(URL = URL、paramsは= paramsは、ヘッダー= ヘッダ)
    resp_json = response.json()
    IF resp_json.get(' のErrMsg ')== ' OK ' 
        resp_json = response.json()
        ページングデータがあるかどうか、戻り値の決定 
        can_msg_continueのresp_json = [ ' can_msg_continue ' ]
         現在のタブ投稿 
        MSG_COUNT =をresp_json [ ' MSG_COUNT ' ] 
        general_msg_list = json.loads(resp_json [ ' general_msg_list ' ])
        一覧 = general_msg_list.get(' リスト' 印刷(リスト、" ************** " のための一覧:
            app_msg_ext_info = I [ ' app_msg_ext_info ' ]
             #のタイトル 
            タイトル= app_msg_ext_info [ ' タイトル' ]
             #の記事アドレス 
            content_url = app_msg_ext_info 【' CONTENT_URL ' ]
             #1 カバー図は 
            app_msg_ext_info覆う= [ ' カバー' ] 

            #1 
            日時= I [ ' comm_msg_info ' ] [ ' 日時' ] 
            日時 = time.strftime(" %Y-%M-%D%H:%のM:%S " 、time.localtime(日時))

            mongo_wx.insert({ 
                ' タイトル' :タイトル、
                 ' content_url ' :content_url、
                 ' カバー' :カバー、
                 ' 日時' :日時
            })
        であれば can_msg_continue == 1 リターン真の
         リターンFalseの
     印刷' 获取文章异常は... ' を返すFalseの


場合 __name__ == ' __main__ ' 
    ビズ = ' Mzg4MTA2Nzg0NA == ' 
    UIN = ' NDIyMTI5NDM1 ' 
    キー = ' 20a680e825f03f1e7f38f326772e54e7dc0fd02ffba17e92730ba3f0a0329c5ed310b0bd55 
      b3c0b1f122e5896c6261df2eaea4036ab5a5d32dbdbcb0a638f5f3605cf1821decf486bb6eb4d92d36c620
' インデックス =0 ながら 1 印刷(F ' 開始公衆号をクロール{インデックス+ 1}ページの記事。' フラグに = get_wx_article(BIZ、UIN、キー、インデックス= 指数) 防ぐ調和休止8秒 time.sleep(8 指数 + = 1 IF ないフラグ: 印刷パブリック番号クロール物品はプログラムを終了し、完了したBREAKの 印刷(F ' パブリック号{インデックス+を取得する準備ができて.......... 1}物品。' `` `

 

おすすめ

転載: www.cnblogs.com/cxiaolong/p/11318439.html