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实现的数据结构与算法之双端队列详解
Apr 22 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
python常用函数详解
Sep 13 Python
Python闭包的两个注意事项(推荐)
Mar 20 Python
python 3.5下xadmin的使用及修复源码bug
May 10 Python
Python基于PyGraphics包实现图片截取功能的方法
Dec 21 Python
python编程测试电脑开启最大线程数实例代码
Feb 09 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
python+logging+yaml实现日志分割
Jul 22 Python
Python2与Python3的区别点整理
Dec 12 Python
浅谈Django前端后端值传递问题
Jul 15 Python
Python 忽略文件名编码的方法
Aug 01 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防止form重复提交的方法
2013/07/01 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
2011/08/23 Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
2012/06/15 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
2018/02/13 jQuery
教你如何用node连接redis的示例代码
2018/07/12 Javascript
nodejs中express入门和基础知识点学习
2018/09/13 NodeJs
vue如何截取字符串
2019/05/06 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
python append、extend与insert的区别
2016/10/13 Python
python实现二叉查找树实例代码
2018/02/08 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
物业管理求职自荐信
2013/09/25 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
横空出世观后感
2015/06/09 职场文书
《废话连篇——致新手》——chinapizza
2022/04/05 无线电