前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者: 舴艋的舟

转载:Python爬取公众号文章​mp.weixin.qq.com

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun

爬取的方法多种多样,今天和大家分享一种较为简单的方法,即通过微信公众号后台的“超链接”功能进行爬取。可能有些小伙伴没有接触过微信公众号的后台,这里贴张图让大家了解一下

到这里有些小伙伴可能会说,我不能登录公众号后台怎么办???

没关系,虽然我们每次爬虫目的是为了得到我们想要的结果,但这并不是我们学习的重点,我们学习的重点是爬虫的过程,是我们如何去得到目标数据,所以不能登录公众号后台的小伙伴看完这篇文章可能无法获取到最终的爬取结果,但是看完这篇文章你同样会有所收获。

一、前期准备

选择爬取的目标公众号

点击超链接–进入编辑超链接界面–输入搜索我们需要爬取的目标公众号

今天我们就以爬取“数据分析”这个公众号为例为大家进行介绍

点击公众号可以看到每篇文章对应的标题信息

我们这次爬虫的目标就是得到文章标题以及对应的链接。

二、开始爬虫

爬虫三步曲:请求网页

解析网页

保存数据

1、请求网页

首先导入我们本次爬虫需要用到的第三方库

import re#用来解析网页

import requests#用来请求网页

import csv#用来保存数据

import time#用来设置每次爬取间隔的时间

查找我们爬取的目标数据所在位置,点击通过查找得到的包,得到目标网址以及请求头信息

请求网页

headers={

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',

'cookie': 'pgv_pvi=2389011456; RK=x4Sdy3WsT4; ptcz=4a2fe0ffda6742a230c94f168291afcce2bd001e5d6615132b55da90559cd463; pgv_pvid=6989331736; _ga=GA1.2.735850052.1585832762; ptui_loginuin=1207020736; ua_id=iJuK7hnHjcUE0e2dAAAAAHzCRcatCWOiHc-hdkhSDL4=; __guid=166713058.1972731636944397800.1590316882436.5461; openid2ticket_oY8wqwesgvgkdQ69wUeM5UxhOV5c=ION52/k2w4M3o44iht5BRt5yCyxP/3IaRXJ84RIpRZA=; mm_lang=zh_CN; pac_uid=0_5ecd1592971c3; uin=o1240069166; skey=@YLtvDuKyj; pgv_info=ssid=s4875389884; pgv_si=s8410697728; uuid=62839906b2a77b5f098cd91979af8b33; rand_info=CAESIC53TQFCwjIe4ZsrTRKvSs+ocfs4UTsj9swrrNwosjCd; slave_bizuin=3240807523; data_bizuin=3240807523; bizuin=3240807523; data_ticket=AiTk/OFWXCKxhaenCvEuP06mwWTI6YqCyt+74hoaXaNtKBbcnq//ZTXHzqByMhK6; slave_sid=YndxeFhCSkU5OUJtdFYycW9zN29FcG51NU5GNElBM3I2RF9wVjJBRGx2bWxrTXdiMDZFYzllUWNaMlN4N0RsOTlVMDRxZFZEMjJXdlRZcXBVOGptQ2ZDSVZiOEJlQW5BZDVCWlkzSnJ6WWNPWVRiN1J0cldCd0pvbTc3RGRiMm9pZ3ZISTl6WWhDUmNCZ2s3; slave_user=gh_5d822fe7fd08; xid=9794daa60db66fcf7a65c4054e3d68ce; mmad_session=43d4e5247a6b025b67ba3abd48d27a309ec4713911b6ef6f23cddb4b9953e771354ad1572fbc3fa895051725e95abb887cf2d03e9864084974db75c8588189699ea5b20b8fe35073831446ef98d24de600f107fe69d79646a3dd2907ab712e1f11de1c56c245721266e7088080fefde3; ts_last=mp.weixin.qq.com/cgi-bin/frame; ts_uid=1963034896; monitor_count=15'

}#请求头信息,这里cookie信息必须添加,否则得不到网页信息

url='https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin=0&count=5&fakeid=MjM5MjAxMDM4MA==&type=9&query=&token=59293242&lang=zh_CN&f=json&ajax=1'

response=requests.get(url,headers=headers)#得到响应内容

response.encoding='utf-8'#设置响应内容为utf-8格式

html=response.text#得到网页的文本形式

print(html)

这里的请求头信息必须添加上cookie的信息,否则无法得到网页信息

网页的请求结果如下图所示,红色框标出的为我们需要的文章标题以及文章链接

2、解析网页

从得到的网页响应结果中我们可以看到,每篇文章的标题和链接都分别在"title"标签和"cover"标签后面,所以我们可以采用正则表达式直接对其进行解析

title=re.findall('"title":"(.*?)"',html)#得到文章标题

cover=re.findall('"cover":"(.*?)"',html)#得到文章链接

all=zip(title,cover)#利用zip方法,将两个列表中的数据一一对应

print(list(all))#list是对zip方法得到的数据进行解压

解析后结果如下

3、保存数据

for data in all:#for循环遍历列表

time.sleep(3)#每爬取一篇文章间隔3秒,以防触发反爬

with open('C:\\Users\\Administrator\\Desktop\\爬取公众号文章.csv','a',encoding='utf-8-sig') as file:

#将数据保存到桌面

write=csv.writer(file)

write.writerow(data)

到此本次的爬虫就已经完成,我们来看一下最终结果

完整代码

import re#用来解析网页

import requests#用来请求网页

import csv#用来保存数据

import time#用来设置每次爬取间隔的时间

# 请求网页

index=0

headers={

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',

'cookie': 'pgv_pvi=2389011456; RK=x4Sdy3WsT4; ptcz=4a2fe0ffda6742a230c94f168291afcce2bd001e5d6615132b55da90559cd463; pgv_pvid=6989331736; _ga=GA1.2.735850052.1585832762; ptui_loginuin=1207020736; ua_id=iJuK7hnHjcUE0e2dAAAAAHzCRcatCWOiHc-hdkhSDL4=; __guid=166713058.1972731636944397800.1590316882436.5461; openid2ticket_oY8wqwesgvgkdQ69wUeM5UxhOV5c=ION52/k2w4M3o44iht5BRt5yCyxP/3IaRXJ84RIpRZA=; mm_lang=zh_CN; pac_uid=0_5ecd1592971c3; uin=o1240069166; skey=@YLtvDuKyj; pgv_info=ssid=s4875389884; pgv_si=s8410697728; uuid=62839906b2a77b5f098cd91979af8b33; rand_info=CAESIC53TQFCwjIe4ZsrTRKvSs+ocfs4UTsj9swrrNwosjCd; slave_bizuin=3240807523; data_bizuin=3240807523; bizuin=3240807523; data_ticket=AiTk/OFWXCKxhaenCvEuP06mwWTI6YqCyt+74hoaXaNtKBbcnq//ZTXHzqByMhK6; slave_sid=YndxeFhCSkU5OUJtdFYycW9zN29FcG51NU5GNElBM3I2RF9wVjJBRGx2bWxrTXdiMDZFYzllUWNaMlN4N0RsOTlVMDRxZFZEMjJXdlRZcXBVOGptQ2ZDSVZiOEJlQW5BZDVCWlkzSnJ6WWNPWVRiN1J0cldCd0pvbTc3RGRiMm9pZ3ZISTl6WWhDUmNCZ2s3; slave_user=gh_5d822fe7fd08; xid=9794daa60db66fcf7a65c4054e3d68ce; mmad_session=43d4e5247a6b025b67ba3abd48d27a309ec4713911b6ef6f23cddb4b9953e771354ad1572fbc3fa895051725e95abb887cf2d03e9864084974db75c8588189699ea5b20b8fe35073831446ef98d24de600f107fe69d79646a3dd2907ab712e1f11de1c56c245721266e7088080fefde3; ts_last=mp.weixin.qq.com/cgi-bin/frame; ts_uid=1963034896; monitor_count=15'

}#请求头信息,这里cookie信息必须添加,否则得不到网页信息

for i in range(2):#设置for循环实现翻页,爬取多页内容,这里range括号内的参数可以更改

url='https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin='+str(index)+'&count=5&fakeid=MjM5MjAxMDM4MA==&type=9&query=&token=59293242&lang=zh_CN&f=json&ajax=1'

response=requests.get(url,headers=headers)#得到响应内容

response.encoding='utf-8'#设置响应内容为utf-8格式

html=response.text#得到网页的文本形式

# 解析网页

title=re.findall('"title":"(.*?)"',html)#得到文章标题

cover=re.findall('"cover":"(.*?)"',html)#得到文章链接

all=zip(title,cover)#利用zip方法,将两个列表中的数据一一对应

# print(list(all))#list是对zip方法得到的数据进行解压

# 保存数据

for data in all:#for循环遍历列表

time.sleep(3)#每爬取一篇文章间隔3秒,以防出发反爬

with open('C:\\Users\\Administrator\\Desktop\\爬取公众号文章.csv','a',encoding='utf-8-sig') as file:

#将数据保存到桌面

write=csv.writer(file)

write.writerow(data)

pass

pass

index += 5

python 爬取公众号文章_python批量爬取公众号文章相关推荐

  1. python调用api接口获取数据_python批量爬取NCBI基因注释并调用谷歌API批量翻译

    作者:沙雕学习小组 这里有视频教程:https://www.bilibili.com/video/av87724182 今天想实现这个功能: 差异分析得到了200多个基因(甚至更多) 我要一个一个把基 ...

  2. python下载微信公众号文章_python如何导出微信公众号文章方法详解

    1.安装wkhtmltopdf 下载地址:https://wkhtmltopdf.org/downloads.html 我测试用的是windows的,下载安装后结果如下 2 编写python 代码导出 ...

  3. python爬取抖音用户数据_python批量爬取下载抖音视频

    本文实例为大家分享了python批量爬取下载抖音视频的具体代码,供大家参考,具体内容如下 import os import requests import re import sys import a ...

  4. python 爬取作品集_Python批量抓取站酷ZCOOL作品图片并归档

    前言 前几天,由于个人有需求,所以就要对站酷网一些类别下的作品的图片进行批量抓取,首先是采用的是NodeJs来写的,但是在运行的途中遇到很多的问题,所以后来就换成了Python,同时使用了多线程,使得 ...

  5. python怎么批量爬取图片_python批量爬取网络图片

    上篇通过python爬取了一篇网络小说,初步了解了爬虫的四步流程,本文稍微扩展一点,试着从网页中爬取出多个图片,具体来看看: 我们今天试着从下面图1的网页上将所有图片都爬取出来,放在一个指定的文件夹里 ...

  6. python爬取图片_python批量爬取网络图片

    上篇通过python爬取了一篇网络小说,初步了解了爬虫的四步流程,本文稍微扩展一点,试着从网页中爬取出多个图片,具体来看看: 我们今天试着从下面图1的网页上将所有图片都爬取出来,放在一个指定的文件夹里 ...

  7. python批量评论_python批量爬取京东手机评论信息及星级

    本科生在读,如有问题欢迎指正 爬取京东评论信息:评论信息是动态加载的,所以在商品详情页不能直接爬取评论. 下面以一款手机为例,详细介绍python批量爬取京东评论. 找到评论区域 image.png ...

  8. 导出公众号历史文章,批量下载微信公众号数据分析

    功能:采集公众号,实时监测公众号的内容. 如何才能提高微信文章的采集速度? 采集文章工具都有哪些特点? 接下来给大家介绍一下 孤狼采集器 一.软件使用方法 第1步:开始采集自已即将要导出的文章 第2步 ...

  9. python跑一亿次循环_python爬虫爬取微博评论

    原标题:python爬虫爬取微博评论 python爬虫是程序员们一定会掌握的知识,练习python爬虫时,很多人会选择爬取微博练手.python爬虫微博根据微博存在于不同媒介上,所爬取的难度有差异,无 ...

  10. python 批量下载网页图片_Python批量爬取图片并下载

    PS:本文附赠爬汇图网图片的方法 本文的目录看这里:前言找资源部分进入编程猫图鉴网找到聚集地获取聚集地网址代码部分导入相应的库re库介绍代码获取整个网站的内容扩展:状态码的意思其他的代码--总体代码关 ...

最新文章

  1. python代码画图案-python如何绘制iPhone手机图案?(代码示例)
  2. 机器学习-降维之奇异值分解SVD算法原理及实战
  3. C#LeetCode刷题之#62-不同路径(Unique Paths)
  4. java 判断文件是否打开过_【后端开发】Java中如何判断文件是否被隐藏?(代码示例)...
  5. 完美解决eWebEditor编辑器按钮失效 IE8、9无法使用方法
  6. 我可以编写一个CSS选择器来选择不具有某个类或属性的元素吗?
  7. ubuntu重装用户root认证
  8. crmjs区分窗口是否是高速编辑(2)
  9. csgo fps不稳定和服务器,CSGO fps不稳定,求FPS 优化设置
  10. nfs总结之生产实例
  11. 超帅的C核心相关总结
  12. 机器学习入门的绝佳材料:斯坦福大学机器学习课程原始讲义(含公开课视频)
  13. 一个标星 5.2k+ 的牛逼开源商城系统
  14. Linux 部署开源WAF模块 ModSecurity
  15. 【递推】HDU -2018 母牛的故事斐波那契兔子数列
  16. AutoJs学习-投币小游戏
  17. AR_Vuforia教程,详细到不能再详细
  18. 基于arduino的一位数码管控制
  19. Django项目实现验证码
  20. 为什么我们需要软件定制化?

热门文章

  1. 基于JSP实现的影视创作论坛系统
  2. Funcode实现坦克大战(十个需求)
  3. SPSS入门教程—相关性分析使用方法
  4. shp地图如何导入奥维地图手机_如何将平面控制点导入Google Earth、奥维互动地图及手机奥维互动地图APP里面?...
  5. 微服务框架自带uuid生成器
  6. 第二十届全国中小学电脑制作活动通知
  7. 一文讲解ARM、STM32之间的关系以及STM单片机介绍
  8. 疯狂的程序员 1-10
  9. Unity3D开发Android游戏(二)Hello world
  10. unity开发android游戏