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常用模块用法分析
Sep 08 Python
python实现图片变亮或者变暗的方法
Jun 01 Python
python实现二叉查找树实例代码
Feb 08 Python
tensorflow 使用flags定义命令行参数的方法
Apr 23 Python
解决pyecharts在jupyter notebook中使用报错问题
Apr 23 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 Python
18个Python脚本可加速你的编码速度(提示和技巧)
Oct 17 Python
Python hashlib模块加密过程解析
Nov 05 Python
Pytorch之parameters的使用
Dec 31 Python
基于Python快速处理PDF表格数据
Jun 03 Python
解决python对齐错误的方法
Jul 16 Python
python openCV自制绘画板
Oct 27 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
风格模板初级不完全修改教程
2006/10/09 PHP
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
php检测图片木马多进制编程实践
2013/04/11 PHP
使用PHP编写发红包程序
2015/07/22 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
PHP中常用的数组操作方法笔记整理
2016/05/16 PHP
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
JS实现黑客帝国文字下落效果
2015/09/01 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
2014/11/05 HTML / CSS
中国领先的专业演出票务网:永乐票务
2016/08/29 全球购物
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
社区志愿者活动总结
2014/06/26 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android
html粘性页脚的具体使用
2022/01/18 HTML / CSS
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js