python 爬取微信文章


Posted in Python onJanuary 30, 2016

本人想搞个采集微信文章的网站,无奈实在从微信本生无法找到入口链接,网上翻看了大量的资料,发现大家的做法总体来说大同小异,都是以搜狗为入口。下文是笔者整理的一份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) #用新列表扩展原来的列表
**[#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)
Python 相关文章推荐
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
Jun 20 Python
Python安装图文教程 Pycharm安装教程
Mar 27 Python
Python 加密与解密小结
Dec 06 Python
python直接获取API传递回来的参数方法
Dec 17 Python
详解Python装饰器
Mar 25 Python
python 使用plt画图,去除图片四周的白边方法
Jul 09 Python
详解python uiautomator2 watcher的使用方法
Sep 09 Python
python迭代器常见用法实例分析
Nov 22 Python
Python PyQt5模块实现窗口GUI界面代码实例
May 12 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
May 18 Python
python批量提取图片信息并保存的实现
Feb 05 Python
一篇文章带你搞懂Python类的相关知识
May 20 Python
python生成验证码图片代码分享
Jan 28 #Python
详解Python网络爬虫功能的基本写法
Jan 28 #Python
Python3实现Web网页图片下载
Jan 28 #Python
Python正则获取、过滤或者替换HTML标签的方法
Jan 28 #Python
Python每天必学之bytes字节
Jan 28 #Python
Python装饰器入门学习教程(九步学习)
Jan 28 #Python
基于Python如何使用AIML搭建聊天机器人
Jan 27 #Python
You might like
PHP+DBM的同学录程序(3)
2006/10/09 PHP
php对数组排序的简单实例
2013/12/25 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
Python实现端口复用实例代码
2014/07/03 Python
python批量生成本地ip地址的方法
2015/03/23 Python
Python的Django框架中的Context使用
2015/07/15 Python
python事件驱动event实现详解
2018/11/21 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
python 日期排序的实例代码
2019/07/11 Python
Python3分析处理声音数据的例子
2019/08/27 Python
python库matplotlib绘制坐标图
2019/10/18 Python
canvas实现滑动验证的实现示例
2020/08/11 HTML / CSS
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
C语言基础笔试题
2013/04/27 面试题
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
战友聚会邀请函
2014/01/18 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书