python 爬取微信文章
本人想搞個(gè)采集微信文章的網(wǎng)站,無奈實(shí)在從微信本生無法找到入口鏈接,網(wǎng)上翻看了大量的資料,發(fā)現(xiàn)大家的做法總體來說大同小異,都是以搜狗為入口。下文是筆者整理的一份python爬取微信文章的代碼,有興趣的歡迎閱讀
#coding:utf-8 author = 'haoning' **#!/usr/bin/env python import time import datetime import requests** import json import sys reload(sys) sys.setdefaultencoding( "utf-8" ) import re import xml.etree.ElementTree as ET import os #OPENID = 'oIWsFtyel13ZMva1qltQ3pfejlwU' OPENID = 'oIWsFtw_-W2DaHwRz1oGWzL-wF9M&ext' XML_LIST = [] # get current time in milliseconds current_milli_time = lambda: int(round(time.time() * 1000)) def get_json(pageIndex): global OPENID the_headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36', 'Referer': 'http://weixin.sogou.com/gzh?openid={0}'.format(OPENID), 'Host': 'weixin.sogou.com' } url = 'http://weixin.sogou.com/gzhjs?cb=sogou.weixin.gzhcb&openid={0}&page={1}&t={2}'.format(OPENID, pageIndex, current_milli_time()) #url print(url) response = requests.get(url, headers = the_headers) # TO-DO; check if match the reg response_text = response.text print response_text json_start = response_text.index('sogou.weixin.gzhcb(') + 19 json_end = response_text.index(')') - 2 json_str = response_text[json_start : json_end] #get json #print(json_str) # convert json_str to json object json_obj = json.loads(json_str) #get json obj # print json_obj['totalPages'] return json_obj def add_xml(jsonObj): global XML_LIST xmls = jsonObj['items'] #get item #print type(xmls) XML_LIST.extend(xmls) #用新列表擴(kuò)展原來的列表 **[#www.oksousou.com][2]** # ------------ Main ---------------- print 'play it :) ' # get total pages default_json_obj = get_json(1) total_pages = 0 total_items = 0 if(default_json_obj): # add the default xmls add_xml(default_json_obj) # get the rest items total_pages = default_json_obj['totalPages'] total_items = default_json_obj['totalItems'] print total_pages # iterate all pages if(total_pages >= 2): for pageIndex in range(2, total_pages + 1): add_xml(get_json(pageIndex)) #extend print 'load page ' + str(pageIndex) print len(XML_LIST)
相關(guān)文章
保姆級(jí)官方y(tǒng)olov7訓(xùn)練自己的數(shù)據(jù)集及項(xiàng)目部署詳解
最近使用了YOLOv7訓(xùn)練自己的數(shù)據(jù)集,接下來簡單記錄一下項(xiàng)目的部署,這篇文章主要給大家介紹了關(guān)于保姆級(jí)官方y(tǒng)olov7訓(xùn)練自己的數(shù)據(jù)集及項(xiàng)目部署的相關(guān)資料,需要的朋友可以參考下2022-08-08Python中請(qǐng)使用isinstance()判斷變量類型
這篇文章主要介紹了Python中請(qǐng)使用isinstance()判斷變量類型,本文先是給出了isinstance函數(shù)判斷變量類型的例子,并對(duì)isinstance 和 type的區(qū)別做了講解,需要的朋友可以參考下2014-08-08一文教你用python編寫Dijkstra算法進(jìn)行機(jī)器人路徑規(guī)劃
迪杰斯特拉(Dijkstra)算法是典型最短路徑算法,用于計(jì)算一個(gè)節(jié)點(diǎn)到其他節(jié)點(diǎn)的最短路徑,這篇文章主要給大家介紹了關(guān)于利用python編寫Dijkstra算法進(jìn)行機(jī)器人路徑規(guī)劃的相關(guān)資料,需要的朋友可以參考下2021-08-08使用Python實(shí)現(xiàn)簡單的學(xué)生成績管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)學(xué)生成績管理系統(tǒng),使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01對(duì)python中基于tcp協(xié)議的通信(數(shù)據(jù)傳輸)實(shí)例講解
今天小編就為大家分享一篇對(duì)python中基于tcp協(xié)議的通信(數(shù)據(jù)傳輸)實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07Pygame實(shí)戰(zhàn)練習(xí)之一百層游戲
跳上一百層想必是很多人童年時(shí)期的經(jīng)典游戲,我們依舊能記得抱個(gè)老人機(jī)娛樂的場景,下面這篇文章主要給大家介紹了關(guān)于如何利用python寫一個(gè)簡單的跳上一百層小游戲的相關(guān)資料,需要的朋友可以參考下2021-09-09