本节内容,讲解爬取网络图片,利用正则匹配图片地址

请求网页之后,响应部分内容如下图:

 1 时间:2023/1/7 10:42
2 功能描述
3 1.进行指定标签的定位
4 2.标签或者标签对应的属性中存储的数据值进行提取(解析)
5 获取图片地址并下载
6
7
8 编码流程
9 1.指定url
10 2.发起请求
11 3,数据解析
12 4.持久化存储
13
14 '''
15 import requests
16 import re # 导入正则模块
17 import os # 创建文件夹的时候使用
18 # 创建一个文件夹来保存下载的图片
19 if not os.path.exists('我的图片'):
20 os.mkdir('我的图片')
21 path = '我的图片'
22
23 url = 'https://www.7nua.com/nua/2022051081813.html'
24 headers= {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'}
25 # 发送请求并获取响应数据,响应数据是一个html文件
26 url_text = requests.get(url, headers=headers).text
27 # 正则匹配,需要保留的匹配数据,要用()括起来。
28 # 正则表达式要用一对单引号括起来
29 r = '<p><img src="(.*?)">'
30 # 调用正则方法findall(),第一个参数为正则表达式,第二次参数为应用的数据源,第三个参数re.S表示多行匹配,re.M表示单行匹配,一般都写多行匹配
31 # 其返回值是一个列表,主要,这里返回的是相对地址,还有自己补完整
32 lis = re.findall(r, url_text, re.S)
33 # print(lis)
34 # 我们可以复制一下图片地址,看看其完整地址是什么,好补充
35 for src in lis:
36 src = ' https://www.7nua.com'+src
37 # 请求到了图片的二进制数据,所以用content,而不用text
38 img_data = requests.get(url=src, headers=headers).content
39 # 生成图片名称,用切片函数split(),第一个参数表示以‘/'为切割符,切割好之后,取这个列表的最后一个元素,用-1
40 # 对图片地址字符串src,调用切片函数split
41 img_name = src.split('/')[-1]
42 # 保存图片
43 with open('{}/{}'.format(path,img_name), 'wb')as fp:
44 fp.write(img_data)
45 print(img_name, '下载成功!!')
46 print('所以图片下载完成!')

最新文章

  1. js 随笔
  2. Photo Kit 框架
  3. 使用 polyfills 的简易方法
  4. linux添加ssh用户
  5. CF 370
  6. MySQL WorkBench中文教程
  7. xib添加手势后报错:-[UITapGestureRecognizer setFrame:]: unrecognized selector sent to instance xxx
  8. flash2print文档在线预览应用(java,.net)
  9. angularjs自定义指令实现分页插件
  10. activiti 数据库连接配置
  11. 金融量化分析【day111】:Matplotib-画布与子图
  12. PHP 简易聊天室 利用redis的订阅发布功能
  13. 剑指Offer 5. 用两个栈实现队列 (栈)
  14. 当Elasticsearch遇见Kafka
  15. [docker]macvlan实现双vlan互通
  16. Linux svn的搭建和使用
  17. sqlite 数据库错误 The database disk image is malformed database disk image
  18. spring boot 与 thymeleaf (3): 设置属性、条件、遍历、局部变量、优先级、内联语法
  19. (转载)How browsers work--Behind the scenes of modern web browsers (前端必读)
  20. HTML5 PACS 医学成像

热门文章

  1. CentOS 8.2 对k8s基础环境配置
  2. springboot+vue 实现校园二手商城(毕业设计一)
  3. JSP的内置对象 request和response
  4. 18.-cookies和session
  5. &lt;四&gt;1:全面掌握Const的用法
  6. Java Timer使用介绍
  7. curl 下载地址中有特殊字符解决方案
  8. vue-axios增加操作
  9. RocketMQ 在物流行业的应用与运维
  10. 2022春每日一题:Day 13