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中的JSON使用
Apr 28 Python
各个系统下的Python解释器相关安装方法
Oct 12 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
Oct 20 Python
python程序控制NAO机器人行走
Apr 29 Python
pandas对dataFrame中某一个列的数据进行处理的方法
Jul 08 Python
浅谈python图片处理Image和skimage的区别
Aug 04 Python
详解PyTorch手写数字识别(MNIST数据集)
Aug 16 Python
django 自定义filter 判断if var in list的例子
Aug 20 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
Nov 26 Python
Python openpyxl模块实现excel读写操作
Jun 30 Python
python 实现压缩和解压缩的示例
Sep 22 Python
python3.9.1环境安装的方法(图文)
Feb 02 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在线代理转向代码
2012/05/05 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
PHP中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
JavaScript 事件对象的实现
2009/07/13 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
javascript计时器详解
2015/02/28 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
vue ssr 指南详读
2018/06/29 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
python条件和循环的使用方法
2013/11/01 Python
python网络编程学习笔记(四):域名系统
2014/06/09 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
Python中偏函数用法示例
2018/06/07 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
详解python中sort排序使用
2019/03/23 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
如何验证python安装成功
2020/07/06 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
食品安全宣传标语
2014/06/07 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
超市工作总结范文2014
2014/12/19 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
赢在中国观后感
2015/06/02 职场文书
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL