python爬虫之爬取微信公众号文章中的图片

  • 实现的功能
  • 需要用到的库
  • 需要对html一些标签有一定的了解
  • 代码设计思想
  • 源代码
  • 提示

实现的功能


输入想要爬取微信公众号文章的链接,爬取成功后会输出文件夹已经创建(代码创建位置在D:\test)

将爬取到的图片放入文件夹中,并且文件夹的名字为该文章的标题:

需要用到的库

获取文章信息需要的库:beautifulsoup4,requests

需要对html一些标签有一定的了解

可以到w3cschool了解
将微信公众号文章复制链接,然后电脑浏览器打开,按F12开发者工具,或者右键点击查看源,就可以看到网页的源代码。

代码设计思想

1、网页通过request请求获得网页源代码,再通过bs4(beautifulsoup)来对源代码进行提取信息;
文章标题的获取:
2、通过观察微信公众号文章网页源代码,可以发现,文章的标题大部分都是存放在h2标签里面的(大部分,我目前看到的都是h2标签)


那么就可以用bs.select(‘h2’)[0].text来获取文章的标题,用于待会文件夹的命名。
3、又由于文件夹命名有些符号是不合法的,避免文件夹创建报错,那么就用正则将获取的标题进一步筛选,去掉除了中文、数字、英文的其它字或者符号。
文章图片的获取:
4、一般网页中图片的标签都用到img标签和2一样就可以用bs.select(‘img’)获取网页中所有有img标签的代码,但是这样还是太广泛了,需要进一步进行筛选
5、那么查看网页源代码时,可以去找我们想要的图片的源代码是怎么样的这里以山西焦煤汾西矿业|| 孟英强:柳湾矿选煤厂智能化建设探索与实践为例子(但是一般写代码的时候,你需要进行比对,我是有看过几篇后,发现有这个规律才能这么写)(图片有注释),可以发现文章中的图片都是以链接(看链接后面有jpeg)形式插入,并且是放在data-src这里,那么我们就可以再通过这个data-src进一步筛选,即if ‘data-src’ in im.attrs来判断和选出刚刚获取全部img标签中有着data-src的img标签,然后用一个列表将全部图片的链接存放起来。

6、访问列表中所有的图片链接,并且下载下来保存在文件夹中。

源代码

import re
import requests
import os
from bs4 import BeautifulSoup
import urllib
imglist=[]#存放图片链接
title=''
html=input("输入需要获取照片的公众号文章链接:")
resp=requests.get(html)#建立链接
content=resp.text
bs=BeautifulSoup(content,'html.parser')
title=bs.select('h2')[0].text#获取文章标题,每个文章标题基本上放在h2标签中
title=re.findall('[\u4e00-\u9fa5a-zA-Z0-9]+',title,re.S) #只要字符串中的中文,字母,数字,防止出现文件命名不允许的符号
title="".join(title)
for im in bs.select('img'):#每张图片都是放在img整个标签里面if 'data-src' in im.attrs:#我们想要文章里的照片,通过data-src这一个属性来进行进一步筛选imglist.append(im['data-src'])
x = 0
path = 'D:\\test\\'+title
# 将图片保存到D:\\test\\文章名文件夹中,如果没有文章名文件夹则创建
if not os.path.isdir(path):os.makedirs(path)
paths = path+'\\'      #保存在文章名文件的路径下
for imgurl in imglist:urllib.request.urlretrieve(imgurl,'{0}{1}.jpg'.format(paths,x))  #打开imglist中保存的图片网址,并下载图片保存在本地,format格式化字符串x = x + 1
print(title+'照片获取成功,文件夹已创建!')

提示

可能有的文章它的网页结构不一样,获取不到,需要修改源代码,可以照着上面代码设计思想,进行代码修改即可!

python爬虫之爬取微信公众号文章中的图片相关推荐

  1. 【Python爬虫】爬取微信公众号文章信息准备工作

    有一天发现我关注了好多微信公众号,那时就想有没有什么办法能够将微信公众号的文章弄下来,而且还想将一些文章的精彩评论一起搞下来.参考了一些文章,通过几天的研究基本上实现了自己的要求,现在记录一下自己的一 ...

  2. 使用python的requests库爬取微信公众号文章中的图片

    1.首先导入我们需要的库: import requests from lxml import etree import os 以某篇文章为例,复制该文章连接: 2.使用requests库获取该网址的响 ...

  3. Python批量爬取微信公众号文章中的图片重建PowerPoint文件

    开学第一课:一定不要这样问老师Python问题 董付国老师Python系列教材推荐与选用参考 3000道Python习题免费在线练习 ============= 版权声明:由于公众号后台规则问题,本文 ...

  4. python爬虫能爬取微信密码吗_爬虫如何爬取微信公众号文章

    下篇文章:python爬虫如何爬取微信公众号文章(二) 下下篇连接python爬虫如何实现每天爬取微信公众号的推送文章 因为最近在法院实习,需要一些公众号的数据,然后做成网页展示出来便于查看,之前我倒 ...

  5. python爬虫实战-爬取微信公众号所有历史文章 - (00) 概述

    http://efonfighting.imwork.net 欢迎关注微信公众号"一番码客"获取免费下载服务与源码,并及时接收最新文章推送. 最近几年随着人工智能和大数据的兴起,p ...

  6. Java 爬取微信公众号文章(文字 + 图片)

    https://blog.csdn.net/sunnyzyq/article/details/103837521 Maven依赖: <!-- 阿里巴巴 JSON --> <depen ...

  7. 使用代理爬去微信公众号_Python3网络爬虫开发实战之使用代理爬取微信公众号文章...

    本节目标 我们的主要目标是利用代理爬取微信公众号的文章,提取正文.发表日期.公众号等内容,爬取来源是搜狗微信,其链接为 http://weixin.sogou.com/,然后把爬取结果保存到 MySQ ...

  8. python爬取微信公众号文章(包含文章内容和图片)

    之前虽然做过网页爬取,但微信爬取一直没做过,因为我一直不知道网页可以进微信公众平台,只用过微信客户端进微信公众号.既然可以通过网页进微信公众平台,那么爬取微信公众号文章就流程上就没太多难度了. 自己在 ...

  9. python爬取正确但不出文件_使用Python爬取微信公众号文章并保存为PDF文件(解决图片不显示的问题)...

    前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...

  10. Python爬取微信公众号文章、点赞数

    代码还是热乎的,只要你细心一步步的慢慢调试,绝壁没问题 前期准备 订阅号: Python: Fiddler: 微信账号: 流程 使用用微信公众号生成cookie 使用Fiddler抓取微信公众号数据, ...

最新文章

  1. 【2020 Fall】哥伦比亚大学最新《机器学习》课程
  2. 加快modelsim仿真速度的方法(原创)
  3. 225. Implement Stack using Queues
  4. springsecurity sessionregistry session共享_要学就学透彻!Spring Security 中 CSRF 防御源码解析...
  5. 【翻译】WF从入门到精通(第六章):加载和卸载实例
  6. java内部类外部类_Java内部类:如何在内部类中返回外部类对象
  7. count(1),count(*),count(主键) 性能对比及辟谣
  8. PHP通知弹窗代码_公告弹窗
  9. NB-IOT ---5G时代三兄弟,NB-IoT到底有多少优势?
  10. 如何做一个国产数据库(六) 网络传输 nodejs做测试客户端
  11. TensorFlow下载与安装
  12. kdj超卖_【教你一招】KDJ超买超卖指标
  13. 5.Linux 高性能服务器编程 --- Linux 网络编程基础 API
  14. Java打印斐波那契数列
  15. 浅析免费加密软件应该如何选择性下载
  16. 使用C++实现FC红白机模拟器 概述
  17. PN结的形成及PN结工作原理(单向导电)讲解
  18. WEBOS——第一次感觉云计算离我们如此之今
  19. LightOJ 1224 DNA Prefix
  20. メンアットワーク!3 men at work3 猎人们的青春攻略

热门文章

  1. python导入math模块_Python math模块详解
  2. 芭蕉树上第十八根芭蕉-- Qt图片绘图类QPixmap/QImage/QPicture
  3. pycharm方法中划线解决方法
  4. How to do research?
  5. Intent 简介与详解
  6. C语言4位BCD码加法器,四位二进制8421BCD码加法器
  7. linux系统网络老掉线,Linux使用ADSL上网时经常掉线
  8. 智能驾驶相关—DMS系统数据解决方案
  9. 校园火灾项目Focuse-1
  10. VR家庭火灾安全系统_VR校园火灾安全系统_VR工厂火灾安全系统_VR宿舍火灾安全系统多场景选择