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模拟Django框架实例
May 17 Python
python基础_文件操作实现全文或单行替换的方法
Sep 04 Python
对Python3.6 IDLE常用快捷键介绍
Jul 16 Python
python找出完数的方法
Nov 12 Python
pytorch permute维度转换方法
Dec 14 Python
Python脚本修改阿里云的访问控制列表的方法
Mar 08 Python
利用selenium爬虫抓取数据的基础教程
Jun 10 Python
基于Python生成个性二维码过程详解
Mar 05 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
Apr 22 Python
PyCharm 2020.2 安装详细教程
Sep 25 Python
python解包用法详解
Feb 17 Python
python实现控制台输出颜色
Mar 02 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
Laravel 5.5 异常处理 & 错误日志的解决
2019/10/17 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
IE无法设置短域名下Cookie
2010/09/23 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
判断是否存在子节点的实现代码
2016/05/18 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
python判断字符串是否纯数字的方法
2014/11/19 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
python psutil库安装教程
2018/03/19 Python
python如何在循环引用中管理内存
2018/03/20 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
艺龙旅行网酒店预订:国内、港澳台酒店
2018/06/26 全球购物
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
化学教学随笔感言
2014/02/19 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
运动会的口号
2014/06/09 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python
nginx静态资源的服务器配置方法
2022/07/07 Servers