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程序设计入门(4)模块和包
Jun 16 Python
详解Python中contextlib上下文管理模块的用法
Jun 28 Python
Python 实现删除某路径下文件及文件夹的实例讲解
Apr 24 Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 Python
python读写csv文件并增加行列的实例代码
Aug 01 Python
python DataFrame转dict字典过程详解
Dec 26 Python
Python加密模块的hashlib,hmac模块使用解析
Jan 02 Python
Python基础之函数基本用法与进阶详解
Jan 02 Python
解决springboot yml配置 logging.level 报错问题
Feb 21 Python
postman和python mock测试过程图解
Feb 22 Python
python 回溯法模板详解
Feb 26 Python
vue常用指令代码实例总结
Mar 16 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.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
laravel 修改记住我功能的cookie保存时间的方法
2019/10/14 PHP
js 图片等比例缩放代码
2010/05/13 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
JS实现让访问者自助选择网页文字颜色的方法
2015/02/24 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
简单模拟node.js中require的加载机制
2016/10/27 Javascript
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
基于js实现数组相邻元素上移下移
2020/05/19 Javascript
django model去掉unique_together报错的解决方案
2016/10/18 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
python手机号前7位归属地爬虫代码实例
2020/03/31 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
个人委托书怎么写
2014/09/17 职场文书
保留意见审计报告
2015/06/05 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
创业计划书之甜品店
2019/09/18 职场文书