python爬取指定微信公众号文章


Posted in Python onDecember 20, 2018

本文实例为大家分享了python爬取微信公众号文章的具体代码,供大家参考,具体内容如下

该方法是依赖于urllib2库来完成的,首先你需要安装好你的python环境,然后安装urllib2库

程序的起始方法(返回值是公众号文章列表):

def openUrl():
  print("启动爬虫,打开搜狗搜索微信界面")
  # 加载页面
  url = 'http://weixin.sogou.com/weixin?type=1&s_from=input&query=要爬取的公众号名称'
  htmlContentObj = urllib2.urlopen(url)
  # 将页面转化为文本
  html = htmlContentObj.read()
  # 正则匹配
  str = re.findall(r"http://mp.weixin.qq.com/profile.+==",html)
  # 替换转义符得到可访问的链接地址
  tempHref = re.sub(r"&","&",str[0])
  return tempHref

根据获取到的文章列表的页的链接地址(注意是文章列表页面的得链接地址,不是文章的地址)将页面读取为文本

# 获取页面文本方法
def getHtmlStr(conurl):
  # 相当于把页面转化为文本
  response = urllib2.urlopen(conurl)
  # 读取文本的字符串
  htmlStr = response.read()
  return htmlStr

对读取为文本的页面进行分析并利用正则匹配获得公众号里面文章的标题,链接地址等内容得json对象

# 文本转换为所需要的json对象
def htmlToJsonObj(htmlStr):
  # 正则匹配并得到需要的json字符串
  jsonObjstr = re.findall(r"{\"list\":\[.+\]\}", htmlStr)
  # 字符串转json
  jsonObj = json.loads(jsonObjstr[len(jsonObjstr)-1])
  return jsonObj

然后从json对象中取出title,拼接url等(我这里只是获取了链接地址和标题),将两个内容分别存在两个数组,以json对象的方式返回出去(注意拼接url的时候要替换掉转义符(&))

# 从json对象中取出所需要的url
def jsonObjToArray(jsonObj):
  hrefs = []
  titles = []
  # url中的&在html中是& ,故需要替换,下面为正则
  patten = re.compile(r"&")
  # 数组
  arr = jsonObj["list"]
  # 循环添加
  for i in range(len(arr)):
    # 每次替换字符串
    fixHref = re.sub(patten,"&",arr[i]["app_msg_ext_info"]["content_url"])
    # 添加到数组
    titles.append(arr[i]["app_msg_ext_info"]["title"])
    hrefs.append("https://mp.weixin.qq.com"+fixHref)
  jsons = {"hrefs":hrefs,"titles":titles}
  return jsons
#打开浏览器,进行工作
def start():
  tempHref = openUrl()
  # 获取页面文本
  htmlStr = getHtmlStr(tempHref)
  # 文本转json对象
  jsonObj = htmlToJsonObj(htmlStr)
  # f返回所需要的url数组
  return jsonObjToArray(jsonObj)

最后通过启动程序的方法启动爬虫并打印爬取到的信息

if __name__=='__main__': 
  try:
    hrefs = start()
    count = len(hrefs["hrefs"])
    for i in range(count):
      print("标题:"+hrefs["titles"][i].encode("utf-8"))
      print("爬取到的路径:"+hrefs["hrefs"][i].encode("utf-8"))
    print("------------->>爬取并打印完毕")
  except Exception as e:
    print(str(e))

程序需要导入的包

import urllib2
import json
import re

依次赋值以上代码,填写要爬取的公众号,运行即可

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
一个检测OpenSSL心脏出血漏洞的Python脚本分享
Apr 10 Python
Django中URL视图函数的一些高级概念介绍
Jul 20 Python
让python在hadoop上跑起来
Jan 27 Python
Python的Django REST框架中的序列化及请求和返回
Apr 11 Python
Python多进程原理与用法分析
Aug 21 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
关于Flask项目无法使用公网IP访问的解决方式
Nov 19 Python
将python文件打包exe独立运行程序方法详解
Feb 12 Python
关于python中的xpath解析定位
Mar 06 Python
浅谈keras2 predict和fit_generator的坑
Jun 17 Python
解决TensorFlow训练模型及保存数量限制的问题
Mar 03 Python
python解决12306登录验证码的实现
Apr 18 Python
在Django中URL正则表达式匹配的方法
Dec 20 #Python
python采集微信公众号文章
Dec 20 #Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 #Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
Dec 19 #Python
python3实现网络爬虫之BeautifulSoup使用详解
Dec 19 #Python
python爬虫超时的处理的实例
Dec 19 #Python
pycharm中使用anaconda部署python环境的方法步骤
Dec 19 #Python
You might like
介绍php设计模式中的工厂模式
2008/06/12 PHP
PHP 进程锁定问题分析研究
2009/11/24 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
jquery动态添加option示例
2013/12/30 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
2016/01/23 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
vue实现条件叠加搜索的解决方法
2019/05/28 Javascript
[01:07]DOTA2次级职业联赛 - Fpb战队宣传片
2014/12/01 DOTA
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
Python探索之Metaclass初步了解
2017/10/28 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
微信营销策划方案
2014/02/24 职场文书
婚庆司仪主持词
2014/03/15 职场文书
成品库仓管员岗位职责
2014/04/06 职场文书
五年级学生评语
2014/04/22 职场文书
学校四风问题对照检查材料思想汇报
2014/09/26 职场文书
导游词之青城山景区
2019/09/27 职场文书