哈喽,大家好,今天给大家分享一个特别特别小的爬虫案例!

爬取微信推文中的图片!!!!

有人说,这有啥用,,,,万一人家推文是放的是以图片的方式放的某个PPT的内容呢,你想把它弄下来,咋整,就是爬取啦。

欢迎关注哔哩哔哩UP主:“我家公子Q”。

坚持、努力;你我同行!Born to fight!

相信大家都有听过爬虫这个技术,这个技术学会啦,你将会成为资源大佬。这次推文将从以下两个方面展开:

1、爬虫科普

2、微信推文内图片

爬虫科普一定义

近些年,爬虫一词广为流传,也有了新兴的一个职位---爬虫工程师。那什么是爬虫呢?

下面放上百度百科的解释:

网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

应该还是不太懂哈。

其实,通俗点讲,就是在网络上,按照我们的需求通过相应的技术手段来获取我们需要的数据信息,这个过程就叫做爬虫。

The website is the API。。。

我们讲网络上各个网址都当作一个API,即看作一个接口,我们可以通过这个接口获取信息和数据。一个网址称为一个URL,这个URL即是我们爬取的API。

爬虫无非以下几个过程:

1、了解网页

2、获取网页内容

3、解析网页,选择需要的内容

4、保存所需内容

二robots协议

在爬虫之前,需要知道几点:

1、服务器上的数据是有产权归属的。

2、网络爬虫数据牟利存在法律风险。

3、爬虫可能会丢失个人数据。

很多公司对于爬虫也会有一些预防的设置,一般它会判断你的访问来源,尝试判断你是人访问的网站还是机器访问的,从而做出必要的限制。

robots协议,又称robots.txt,它是大家约定成俗的的爬虫协议,说白了,就是爬虫的道德标准。很多公司都会对它的一些网站设置robots协议,这个协议会告诉你该网站哪些内容允许你爬取,哪些内容不允许你爬取。这个协议就是网站根目录下的robots.txt文件。下面给出了京东的robots协议。

https://www.jd.com/robots.txt

这里首先跟大家交代这些的目的,也是希望大家能够合法爬虫,遵守网络道德,做好社会主义接班人,不过一般的小型爬虫都是允许的,大家可以大胆尝试。

三爬虫框架

目前,爬虫已经有相对成熟的框架和相对成熟的第三方库来供大家使用。

上面给出了两个较为成熟的用于爬虫的库。下文我们讲简单介绍Requests的使用。

首先,你需要安装这个库,库的安装方式都很简单,在windows系统上,以管理员身份运行cmd,执行pip install requests。

安装好之后可以测试一下。

下面给出爬虫的框架:

import requests  # 导入requests库def Get_Url_text(URL):  # 定义获取相应链接文本的函数    try:# 这里是异常处理机制        r = requests.get(url, timeout=30)        # 访问这个链接,并返回一个名为r的对象        r.raise_for_status()        # 返回访问的状态,若为200,即为访问成功        r.encoding = r.apparent_encoding        # 将网页的编码和头文件的编码改为一致    except:        return "产生异常"if __name__ = "main":    url = "https://www.Baidu.com"    print(Get_Url_text(url))

四Requests库的一些常用方法

requests库的七个常用方法

在这里有两个对象,一个是访问的url,还有就是返回的reponse对象,即前文代码中的r对象,那对于返回的对象也有一些属性。如下表所示。

微信推文中图片的爬取实例

给大家简单说一下,这里使用的python自带的urllib中的request。但是整体的爬取思路都是一样的。其中还用到了一些其他的库,大家可以自行百度了解。代码及解释如下所示。

import urllib.requestimport re  # 正则表达式库import osimport urllib# 根据给定的网址来获取网页详细信息,得到的html就是网页的源代码def getHtml(url):    page = urllib.request.urlopen(url)    html = page.read()    return html.decode('UTF-8')def getImg(html):    reg = r'  src="(.+?)" '     # 括号里面就是我们要取得的图片网址    imgre = re.compile(reg)    imglist = imgre.findall(html)      # 表示在整个网页中过滤出所有图片的地址,放在imglist中    x = 0    path = 'D:\\python_project\\GRASP_pic_from_wechat\\pic'    # 将图片保存到D:\\test文件夹中,如果没有test文件夹则创建    if not os.path.isdir(path):        os.makedirs(path)    paths = path + '\\'  # 保存在test路径下    for imgurl in imglist:        urllib.request.urlretrieve(imgurl, '{0}{1}.jpg'.format(paths, x))          # 打开imglist中保存的图片网址,并下载图片保存在本地,format格式化字符串        x = x + 1    return imglisthtml = getHtml("https://mp.weixin.qq.com/s/z8phHxzrjeU6HCDdtQdoeQ")  # 获取该网址网页详细信息,得到的html就是网页的源代码print(getImg(html))  # 从网页源代码中分析并下载保存图片

ok,今天的内容到此就大概结束了,希望对大家有帮助,欢迎点赞、转发哦!!

送封面:

微信号:ycwwzzq哔哩哔哩:我家公子Q-扫码关注我们-仙女都在看点点点,赞和在看都在这儿!

图片抓取_小小爬虫批量抓取微信推文里的图片相关推荐

  1. 爬虫取中间文本_小小爬虫批量抓取微信推文里的图片

    哈喽,大家好,今天给大家分享一个特别特别小的爬虫案例! 爬取微信推文中的图片!!!! 有人说,这有啥用,,,,万一人家推文是放的是以图片的方式放的某个PPT的内容呢,你想把它弄下来,咋整,就是爬取啦. ...

  2. python爬虫抓取图片-怎么用爬虫批量抓取网页中的图片?

    这个也有点简单了吧,之前观点网爬知乎的代码,直接给你上了: def download_img(url,classify): try: extention=get_extension(url) if(e ...

  3. python爬虫ip代理_python爬虫批量抓取ip代理的方法(代码)

    本篇文章给大家带来的内容是关于python爬虫批量抓取ip代理的方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 使用爬虫抓取数据时,经常要用到多个ip代理,防止单个ip访 ...

  4. linux 抓包工具_03-Python爬虫工程师-抓包工具

    Python爬虫工程师-抓包工具 Python爬虫工程师-抓包工具思维导图 mitmproxy抓包工具 介绍 mitmproxy就是用于MITM(中间人攻击)的proxy 特点: 1.和正常的代理一样 ...

  5. centos7+TP5.1+selenium+chrome抓取搜狗微信推文

    centos7+TP5.1+selenium+chrome抓取搜狗微信推文 一.Composer 引入 "require": {"php-webdriver/webdri ...

  6. 【Fastapi】批量上传文件(文档、图片、视频等)

    [Fastapi]批量上传文件 项目演示 功能说明 编程思路 重要知识点分析 源代码 项目演示 [Fastapi]批量上传文件(文档.图片.视频等) https://www.bilibili.com/ ...

  7. 微信推文图片间距有缝的代码_使用记录接缝进行旧代码单元测试

    微信推文图片间距有缝的代码 在大多数情况下,使用遗留代码可能很困难. 但是,当涉及到添加新功能,重构或维护您不熟悉的代码时,它可能会变得势不可挡. 如果您已经使用敏捷技术几年了,并且突然间您面对大量的 ...

  8. bootstrap上传图片可实现查看上一张图片和下一张图片_如何实现像人民日报微信推文一样的的点亮效果?...

    如何实现向人民日报微信推文一样的的点亮效果? 有两种方法: 方法一:就是使用代码在编辑器进行编辑emmmmmm这个方法贼麻烦,需要调至HTML模式-- 方法二:在现有编辑器模板下利用SVG动画进行编辑 ...

  9. android 图片气泡,关于实现微信聊天气泡里显示图片解决方案

    关于实现微信聊天气泡里显示图片 这是微信的效果,气泡中的图片没有边距 这是我的效果,背景气泡是用.9.png图片组成的一个selector,气泡中的图片有边距  如何才能像微信那样没有边矩呢? --- ...

最新文章

  1. 第四周项目一-求两个数的最大公约数
  2. 2021人工智能年度评选结果揭晓!AI落地最佳参考在此奉上
  3. Java入门 简易计算器
  4. python比较运算符重载_python运算符重载
  5. c语言一个数组后添加元素append,jQuery 追加元素、拼接元素的方法总结(append、html、insertBefore、before等)...
  6. python网络验证系统_python3+django2 开发易语言网络验证(下)
  7. P3819 松江1843路
  8. 计算机可以调剂其他专业吗,机械能跨专业调剂计算机吗
  9. 为什么结构的sizeof不等于每个成员的sizeof之和?
  10. 【渝粤教育】电大中专跨境电子商务理论与实务 (30)作业 题库
  11. iframe和response.sendRedirect()跳转到父页面的问题
  12. css3探测光圈_一款带光圈阴影的纯CSS3 Instagram图标
  13. Raki的读paper小记:ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS
  14. Vue中级指南-02 如何在Vue项目使用富文本
  15. 市场竞争力法则:以小博大,虽败犹荣
  16. 2021,自动驾驶的“五代十国”
  17. 编写程序,生成一种贯穿10×10字符数组(初始时全为字符‘.‘)的“随机步法”。
  18. Sketch for Mac (矢量绘图软件) v81.1
  19. linux的命令解释器-----shell
  20. 他来了他来了,英伟达发布全新Hopper架构GPU“H100”4nm制程800亿晶体管

热门文章

  1. Hibernate无法自动建表的缘故
  2. 【Elasticsearch】 es watcher 视频 笔记
  3. 【lucene】lucene 高级搜索
  4. 【java】java 如何证明linux缓存行确实存在
  5. 【Spring】Spring 深入理解注解及spring对注解的增强
  6. 【elasticsearch】elasticsearch 搜索结果的含义
  7. 【Docker】Docker 如何在容器内安装vi命令(vi不能使用)
  8. Spring :@Configuration 注解
  9. SpringBoot : SpringBoot自定义的ApplicationContext实现类
  10. java -cp命令使用