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的requests网络编程包使用教程
Jul 11 Python
Python如何判断数独是否合法
Sep 08 Python
python自定义异常实例详解
Jul 11 Python
python assert的用处示例详解
Apr 01 Python
python绘制多个子图的实例
Jul 07 Python
python 将日期戳(五位数时间)转换为标准时间
Jul 11 Python
Python编写一个验证码图片数据标注GUI程序附源码
Dec 09 Python
Pytorch在NLP中的简单应用详解
Jan 08 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
python实现从ftp上下载文件的实例方法
Jul 19 Python
Python基于字典实现switch case函数调用
Jul 22 Python
Python+Pillow+Pytesseract实现验证码识别
May 11 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
PHP Undefined index报错的修复方法
2011/07/17 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
php中JSON的使用与转换
2015/01/14 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
lib.utf.js
2007/08/21 Javascript
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
jQuery判断checkbox选中状态
2016/05/12 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
python中列表元素连接方法join用法实例
2015/04/07 Python
解决uWSGI的编码问题详解
2017/03/24 Python
使用python实现个性化词云的方法
2017/06/16 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
python 构造三维全零数组的方法
2018/11/12 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
七一党建活动方案
2014/01/28 职场文书
应届生简历自我评价
2015/03/11 职场文书
解约证明模板
2015/06/19 职场文书
关于分班的感言
2015/08/04 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
spring 项目实现限流方法示例
2022/07/15 Java/Android