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 相关文章推荐
Python中的自定义函数学习笔记
Sep 23 Python
几个提升Python运行效率的方法之间的对比
Apr 03 Python
Python的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
Feb 16 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
Python 2/3下处理cjk编码的zip文件的方法
Apr 26 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
python脚本开机自启的实现方法
Jun 28 Python
python绘制随机网络图形示例
Nov 21 Python
在python中创建指定大小的多维数组方式
Nov 28 Python
Pycharm和Idea支持的vim插件的方法
Feb 21 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 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
PHP4实际应用经验篇(9)
2006/10/09 PHP
yii操作session实例简介
2014/07/31 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
Python 列表理解及使用方法
2017/10/27 Python
python ansible服务及剧本编写
2017/12/29 Python
Python iter()函数用法实例分析
2018/03/17 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
在python中实现对list求和及求积
2018/11/14 Python
基于numpy中数组元素的切片复制方法
2018/11/15 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
焊接专业毕业生求职信
2013/10/01 职场文书
大学军训感言1500字
2014/03/09 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
新教师个人总结
2015/02/06 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript