大家用爬虫下载图片时肯定遇到过https://demo?wx_fmt=jpeg链接的图片,常见的就是微信公众号的图片。
遇到链接图片用普通的方式是无法爬取下来的,我们可以用urllib.request进行简单爬取,具体源码如下:

# 2018年10月07日 13点30分
# 作者:cacho_37967865
# 爬虫:抓取微信公众号图片
# 示例网址:https://mp.weixin.qq.com/s/2Bi__FPfSMSli0pw6GtSAQfrom re import findall
from urllib.request import urlopen
import osurl = 'https://mp.weixin.qq.com/s/2Bi__FPfSMSli0pw6GtSAQ'
image_path = './Wechatimg'
os.chdir(image_path)# bytes->str:decode 解码
with urlopen(url) as fp:content = fp.read().decode()   # 需要进行解码成字符串
print(content)                     # 得到的是默认的utf-8格式字符串pattern = 'data-type="jpeg" data-src="(.+?)"'
result = findall(pattern, content)
print(result)                      # 得到的是一个列表for index, item in enumerate(result,1):data = urlopen(str(item)).read()print('开始下载第' + str(index) +'张图片:'+ str(item))f = open(str(index) + '.jpg', "wb")f.write(data)f.close()

从源码中可以看到两个特殊的函数decode()和enumerate()
1. decode()方法使用编码注册的编解码器解码该字符串。它默认是使用系统默认的字符串编码。
str->bytes:encode 编码
bytes->str:decode 解码
bytes.decode(encoding="utf-8", errors="strict")
str.encode(encoding="utf-8", errors="strict")
编码就是将字符串转换成字节码,涉及到字符串的内部表示。
解码就是将字节码转换为字符串,将比特位显示成字符。

2. enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
用法
enumerate(sequence, [start=0])
参数
sequence -- 一个序列、迭代器或其他支持迭代对象。
start -- 下标起始位置,默认没有时以0开始

【Python爬虫】下载微信公众号图片相关推荐

  1. Python 爬虫之微信公众号

    Python 爬虫之微信公众号 源代码放在文末. 本次爬虫需要的工具如下: selenium 驱动器 对应浏览器的 webdriver 一个微信订阅号 在 2017 年 6 月左右,微信官方发布一篇文 ...

  2. python爬虫之微信公众号关注度排行榜

    摘要:根据一个运营朋友的需求,取出上万个微信公众号的关注度排行,最终用python实现了这一需求,工作量从至少3天缩减至2小时. 简介:本文使用python+requests框架实现接口访问,通过字典 ...

  3. Python爬虫采集微信公众号阅读量点赞量等数据

    1.安装相关的库 requests.json.re.lxml等 2.完整代码 3.获取登录信息 首先我们用自己的公众号登陆,点击"新的创作",打开创作页面后点击上方超链接选项,f1 ...

  4. Python爬虫,微信公众号话题标签内容采集打印PDF输出

    微信公众号内容采集,比较怪异,其参数,post参数需要话费时间去搞定,这里采集的是话题标签的内容,同时应用了pdfkit打印输出内容. 这里实现应用了两个版本,第一个是直接网页访问,其真实地址即pos ...

  5. 【开源Python爬虫】微信公众号爬虫weixin_crawler开源啦

    作者 | 抽丝剥茧 出品 | 爱迪斯 微信公众号爬虫weixin_crawler开源啦 正式介绍weixin_crawler之前,我准备了两个问题,这两个问题通过weixin_crawler自带的报告 ...

  6. Python爬虫之微信公众号(一)

    之前有位朋友,听说是搞科研的,需要一些公众号的文章数据,特别是需要拿到含有关键字为"武汉"的公众号的文章.所以今天就写了一个爬虫爬取微信公众号的文章 一.大多数的爬取思路 现在,我 ...

  7. 【Python爬虫】微信公众号历史文章和文章评论API分析

    上一篇文章爬取微信公众号文章信息准备工作介绍了微信公众号历史文章和文章评论API的组成情况,历史文章API格式:https://mp.weixin.qq.com/mp/profile_ext?acti ...

  8. python爬虫公众号_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  9. python微信爬取教程_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

最新文章

  1. 关于微信手机端IOS系统中input输入框无法输入的问题
  2. xmind工具软件(相关)
  3. [蓝桥杯][2014年第五届真题]生物芯片(数论)
  4. 用matlab解一维单势垒波函数,一维多势垒结构准束缚态的MATLAB分析计算
  5. 【数据库系统设计】关系数据库简介(关系模型、关系模式、关系完整性、关系代数)
  6. Axis2发布webservices
  7. Java-Lambda表达式第二篇认识Lambda表达式
  8. charles4.0破解和手机抓包
  9. PHP、MySQL分库分表中间件、支持协程
  10. 用JS制作表格的添加删除
  11. 汇编语言rep的用法
  12. Secret的三种形式
  13. C++17类型std::variant介绍
  14. php disconf,未主/disconf
  15. 如何刷新本机DNS缓存(Win+Linux+OSX)
  16. 艺赛旗(RPA)Python:遍历输出某路径下的所有文件和文件夹
  17. 搞联欢会,你知道什么是音乐吗?(二)
  18. Windows系统下cmd中直接返回根目录
  19. Springboot 系列(十)使用 Spring data jpa 访问数据库
  20. 【厚积薄发系列】C++项目总结16—单例模式释放时机导致的崩溃问题分析

热门文章

  1. 内网搭建maven私库
  2. 微信小程序 - 屏幕适配
  3. 软件测试简介教程:单元测试、黑盒测试、白盒测试
  4. 【2018.10.4】CXM笔记(图论)
  5. 这两所985大学,共享同一位校长!校方:属实
  6. 【非原创】完全用Linux工作(上)(r4笔记第86天)
  7. 广州男子花12万买新车 保养时被告知车门被撬开维修过
  8. 机器学习之算法优化(一)
  9. linux线程池的使用
  10. melis系统c800_Dell bilgisayarda HDMI bağlantı noktasıyla ilgili Sık Sorulan Sorular (SSS)