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实现类似ftp传输文件的网络程序示例
Apr 08 Python
Python中tell()方法的使用详解
May 24 Python
Python中遇到的小问题及解决方法汇总
Jan 11 Python
Python面向对象编程基础解析(一)
Oct 26 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
python ddt实现数据驱动
Mar 14 Python
python如何爬取网站数据并进行数据可视化
Jul 08 Python
python3安装crypto出错及解决方法
Jul 30 Python
深入浅析python的第三方库pandas
Feb 13 Python
对Python 字典元素进行删除的方法
Jul 31 Python
python3使用diagrams绘制架构图的步骤
Apr 08 Python
python 经纬度求两点距离、三点面积操作
Jun 03 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 socke 向指定页面提交数据
2008/07/23 PHP
PHP HTML代码串 截取实现代码
2009/06/29 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
PHP curl 抓取AJAX异步内容示例
2014/09/09 PHP
php上传文件常见问题总结
2015/02/03 PHP
php日期操作技巧小结
2016/06/25 PHP
Javascript倒计时代码
2010/08/12 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
js格式化时间的方法
2015/12/18 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
详解vue中computed 和 watch的异同
2017/06/30 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
使用Python求解最大公约数的实现方法
2015/08/20 Python
使用Python+Splinter自动刷新抢12306火车票
2018/01/03 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
学生会竞选自荐信
2013/10/12 职场文书
外贸主管求职简历的自我评价
2013/10/23 职场文书
商务英语专业毕业生自荐信
2013/11/05 职场文书
综艺节目策划方案
2014/06/13 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
python基础之类方法和静态方法
2021/10/24 Python
MySQL transaction事务安全示例讲解
2022/06/21 MySQL