python爬取指定微信公众号文章
作者:max_wcsdn 发布时间:2021-03-29 02:34:39
标签:python,爬取,微信公众号
本文实例为大家分享了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
依次赋值以上代码,填写要爬取的公众号,运行即可
来源:https://blog.csdn.net/max_wcsdn/article/details/82666088
0
投稿
猜你喜欢
- Matplotlib简介Matplotlib是非常强大的python画图工具Matplotlib可以画图线图、散点图、等高线图、条形图、柱形
- 一、 文件的操作1.1创建文件格式:f = open(‘文件', ‘w')或者f = open(‘文件', ‘r
- 一、读取Excel文件使用pandas的read_excel()方法,可通过文件路径直接读取。注意到,在一个excel文件中有多个sheet
- 1. 使用os.system("cmd")特点是执行的时候程序会打出cmd在Linux上执行的信息。import oso
- 本文实例讲述了Python自动连接ssh的方法。分享给大家供大家参考。具体实现方法如下:#!/usr/bin/python#-*- codi
- 一、在for循环中直接更改列表中元素的值不会起作用:如:l = list(range(10)[::2]) print (l)for n in
- 一、场景描述这里有以四张发票为例(辰哥网上搜的),将发票图片放到pic文件夹下。随便打开一张发票提取目标:金额、名称、纳税人识别号、开票人。
- 在Python3.6提供f-Strings新的字符串格式化语法。不仅更加可读、简洁,相比其他方式也不易造成错误,而且还更快。看完本文你将学习
- 准备篇:1、配置防火墙,开启80端口、3306端口说明:Ubuntu默认安装是没有开启任何防火墙的,为了服务器的安全,建议大家安装启用防火墙
- 学习JQUERY就应该从最基本的学起,基本的就应该是语法了,在这里,我们有必要先温习一下JAVASCRIPT的一些知识。语法就不用说了,都是
- MySQL是一个真正的多用户、多线程SQL数据库服务器。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mys
- 一. pprint美观打印数据结构pprint模块包含一个“美观打印机”,用于生成数据结构的一个美观的视图。格式化工具会生成数据结构的一些表
- 解释一个机器学习模型是一个困难的任务,因为我们不知道这个模型在那个黑匣子里是如何工作的。解释是必需的,这样我们可以选择最佳的模型,同时也使其
- Numpy中repeat函数使用Numpy是Python强大的数学计算库,和Scipy一起构建起Python科学计算生态。在本节下面我们重点
- 数组统计函数ndimage提供一系列函数,可以计算标注后的数组的相关特征,比如最值、均值、均方根等。下列函数,如果未作其他说明,那么就有3个
- 如下所示:# -*- coding: utf-8 -*-import sysfrom PySide.QtGui import *from P
- 对于许多想学习JavaScript的朋友来说,无疑如何选择入门的书籍是他们最头疼的问题,或许也是他们一直畏惧,甚至放弃学习JavaScrip
- 如果视图定义包括条件(譬如 WHERE 子句)并且其意图是确保任何引用该视图的 INSERT 或 UPDATE 语句都应用 WHERE 子句
- </pre><pre name="code" class="javascript"
- jupyter notebookjupyter不被识别为内部或外部命令,可操作程序或批处理文件'上次 jupyter noteboo