python爬公众号图片,Python爬虫实例:爬取微信公众号图片(表情包)
背景:
在学习了简单爬虫的编写之后,我试图通过编写爬取公众号图片(表情包)来丰富我的聊天技能,亦不致于败给各种熊猫头。
在学习了requests库之后,就能够很轻松地爬取静态页面的信息,把网页对象获取到本地。但是此时如何把复杂的网页信息解析出来,便需要使用到正则表达式或者这次分享的BeautifulSoup库。BeautifulSoup是非常好用的第三方解析器,具体介绍和使用参考官方说明文档
调用方法:
from bs4 import BeautifulSoup
算法思路
用到的主要第三方库有Re库、Requests库和BeautifulSoup库。
此后我编写了getHTMLText()函数获得指定url的html信息,编写了getimgURL()函数得到某一篇文章里的所有图片链接,再编写download(adlist)函数新建或打开文件夹下载并保存图片,最后在主函数给出想要爬取的公众号文章地址,依次调用函数运行即可。
1.获取网页信息
使用requests库的get函数定义获取网页信息的函数:
def getHTMLText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
return ""
2.解析网页,获取所有图片url
调用BeautifulSoup库,使用find_all()函数查找网页img标签下的信息,再通过正则表达式获取url并存入adlist列表之中。对比上一篇爬取旧书网的心得,可以发现使用BeautifulSoup库和正则表达式的组合形式可以极其有效地解析网页,而且不至于出现解析错误。
def getimgURL(html):
soup = BeautifulSoup(html , "html.parser")
adlist=[]
for i in soup.find_all("img"):
try:
ad= re.findall(r'.*src="(.*?)?" .*',str(i))
if ad :
adlist.append(ad)
except:
continue
return adlist
3.新建文件夹pic,下载并保存爬取的图片信息
先设定需要下载路径root,然后判断路径是否存在,若不存在则新建路径,然后get()函数通过上面获得的图片链接进行下载,并保存在指定路径。
def download(adlist):
#注意更改文件目录
root="C:\\Users\yllzxzyq\Desktop\pics\\"
for i in range(len(adlist)):
path=root+str(i)+"."+‘tif’
if not os.path.exists(root):
os.mkdir(root)
if not os.path.exists(path):
r=requests.get(adlist[i][0])
with open(path,'wb') as f:
f.write(r.content)
f.close()
4.主函数
给出url,依次调用上述函数,爬取公众号文章的全部图片,存在指定目录。
def main():
url = 'https://mp.weixin.qq.com/s/iX-6WDd21W4k21MDp0RYDA'
html=getHTMLText(url)
list=getimgURL(html)
download(list)
main()
附一下全部源码链接:
import requests
from bs4 import BeautifulSoup
import re
import os
#获取网页信息
def getHTMLText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
return ""
#解析网页,获取所有图片url
def getimgURL(html):
soup = BeautifulSoup(html , "html.parser")
adlist=[]
for i in soup.find_all("img"):
try:
ad= re.findall(r'.*src="(.*?)?" .*',str(i))
if ad :
adlist.append(ad)
except:
continue
return adlist
#新建文件夹pic,下载并保存爬取的图片信息
def download(adlist):
#注意更改文件目录
root="C:\\Users\yllzxzyq\Desktop\图片\\"
for i in range(len(adlist)):
path=root+str(i)+"."+'gif'
if not os.path.exists(root):
os.mkdir(root)
if not os.path.exists(path):
r=requests.get(adlist[i][0])
with open(path,'wb') as f:
f.write(r.content)
f.close()
def main():
url = 'https://mp.weixin.qq.com/s/iX-6WDd21W4k21MDp0RYDA'
html=getHTMLText(url)
list=getimgURL(html)
download(list)
main()
希望有所帮助,感谢阅读。
python爬公众号图片,Python爬虫实例:爬取微信公众号图片(表情包)相关推荐
- python爬取公众号历史文章_pythons爬虫:抓取微信公众号 历史文章(selenium+phantomjs)...
原标题:pythons爬虫:抓取微信公众号 历史文章(selenium+phantomjs) 大数据挖掘DT数据分析 公众号: datadw 本文爬虫代码可以通过回复本公众号关键字"公众号& ...
- Python爬取微信公众号文章、点赞数
代码还是热乎的,只要你细心一步步的慢慢调试,绝壁没问题 前期准备 订阅号: Python: Fiddler: 微信账号: 流程 使用用微信公众号生成cookie 使用Fiddler抓取微信公众号数据, ...
- python爬虫——爬取微信公众号的文章及图片
参考 爬取公众号所有文章 想要爬取微信公众号的所有文章,微信只有文章是有地址的,如何找到这个公众号的所有文章呢? 找到该公众号的链接 打开公众号平台,找到创作图文消息 这样就找到了微信号 打开检查模式 ...
- python爬取微信公众号文章(包含文章内容和图片)
之前虽然做过网页爬取,但微信爬取一直没做过,因为我一直不知道网页可以进微信公众平台,只用过微信客户端进微信公众号.既然可以通过网页进微信公众平台,那么爬取微信公众号文章就流程上就没太多难度了. 自己在 ...
- python爬取京东商品图片_python利用urllib实现爬取京东网站商品图片的爬虫实例
本例程使用urlib实现的,基于python2.7版本,采用beautifulsoup进行网页分析,没有第三方库的应该安装上之后才能运行,我用的IDE是pycharm,闲话少说,直接上代码! # -* ...
- python爬虫能爬取微信密码吗_爬虫如何爬取微信公众号文章
下篇文章:python爬虫如何爬取微信公众号文章(二) 下下篇连接python爬虫如何实现每天爬取微信公众号的推送文章 因为最近在法院实习,需要一些公众号的数据,然后做成网页展示出来便于查看,之前我倒 ...
- Python爬虫系列之爬取微信公众号新闻数据
Python爬虫系列之爬取微信公众号新闻数据 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发 > 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学习交流 ...
- python爬虫实战-爬取微信公众号所有历史文章 - (00) 概述
http://efonfighting.imwork.net 欢迎关注微信公众号"一番码客"获取免费下载服务与源码,并及时接收最新文章推送. 最近几年随着人工智能和大数据的兴起,p ...
- python爬虫爬取微信公众号小程序信息
python爬虫爬取微信公众号小程序信息 爬取内容 某汽车维修信息提供的维修店名称,地点以及电话(手机)号码 爬取步骤 啥也别管,先抓包看看,在这里,博主使用的抓包软件是charles 抓包:将网络传 ...
- python爬虫爬取微信_如何使用 Python 爬取微信公众号文章
我比较喜欢看公众号,有时遇到一个感兴趣的公众号时,都会感觉相逢恨晚,想一口气看完所有历史文章.但是微信的阅读体验挺不好的,看历史文章得一页页的往后翻,下一次再看时还得重复操作,很是麻烦. 于是便想着能 ...
最新文章
- 有哪些好用的协同办公软件?
- STL容器的基本特性和特征
- 【译】 Google: Still in The Search 搜索巨人Google的伟大转变 (四)
- 以太坊Sharding FAQ
- 什么是基金净值、单位净值、累计净值
- 如何在 Web 发布规则中使用证书进行 SSL 身份验证
- [BZOJ] 1610: [Usaco2008 Feb]Line连线游戏
- Hive(三)——数据定义
- 【Flask】from flask.ext.script import Manager
- 3D视觉创新方案分享:仓储VSLAM/商品三维重建/静态场景重建/表情识别等多个方向...
- Java编写简单的爱心
- python爬虫小案例
- 三星s7562刷android+2,三星s7562 4.1.2 rom刷机包(精简省电版)
- 1062. 洪水填充
- 全国海选第三期:广州赛区节目视频
- spark统计pv和uv值
- 简约卡通双十一营销策划PPT模版
- java 计算月份和日期
- 大数据剖析| 二线城市抢人大战,拼的到底是什么?
- 【基金学习】基金的相关计算题目
热门文章
- 【教育心理学】学习理论流派——行为主义学习理论
- 2020-03-12
- C语言equivalent用法,C语言相当于'setw'函数
- u检验中的查u界值表_u检验
- 四旋翼飞行器14——无人机中的OSD、数传、图传、FPV是什么?
- SharePoint 2016 Beta 2 使用体验
- gnu stubs arch linux,Linux 编译应用程序报错:fatal error: gnu/stubs-soft.h: No such file or directory...
- matlab检验数据异方差,求教!怀特异方差检验方法在matlab中的实现,以及广义最小平方法...
- Linux系统设置固定ip
- 第1142期AI100_机器学习日报(2017-11-03)