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中的元组与逻辑运算符
Oct 13 Python
Python实现图片转字符画的示例
Aug 22 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 Python
pycharm中显示CSS提示的知识点总结
Jul 29 Python
python编写微信公众号首图思路详解
Dec 13 Python
Python中base64与xml取值结合问题
Dec 22 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
Mar 02 Python
用Python监控你的朋友都在浏览哪些网站?
May 27 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
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
php.ini 中文版
2006/10/28 PHP
php表单请求获得数据求和示例
2014/05/15 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
2015/07/15 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
2017/02/04 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
Javascript之高级数组API的使用实例
2019/03/08 Javascript
[04:26]DOTA2上海特锦赛小组赛第二日 TOP10精彩集锦
2016/02/27 DOTA
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
Python多进程multiprocessing用法实例分析
2017/08/18 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
浅谈Python 函数式编程
2020/06/20 Python
Python通过len函数返回对象长度
2020/10/22 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
物资采购方案
2014/06/12 职场文书
单位接收函范文
2015/01/30 职场文书
保安辞职信范文
2015/02/28 职场文书
感恩老师主题班会
2015/08/12 职场文书
Redis过期数据是否会被立马删除
2022/07/23 Redis