import os.path
import re import requests if __name__ == '__main__':
# 如果不存在该文件夹则进行创建
if not os.path.exists('./saimenshibo'):
os.mkdir('./saimenshibo') url = 'https://www.symansbon.cn/product_ajax.aspx'
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
}
# 抓取前四页的图片数据
for i in range(1, 5):
param = {
't': '10',
'page': i,
'pid': '27',
'_': '1666084852813'
}
# 得到页面源码
page = requests.get(url=url, params=param, headers=header).text
# 正则匹配它的src () => 匹配括号内的表达式 .*? => 惰性匹配
ex = '<li>.*?<figure>.*?<img src="(.*?)" alt.*?</li>'
# 获取到图片所有的url地址
img_list = re.findall(ex, page, re.S)
for img in img_list:
if not str(img).startswith('https:'):
# 获取完整URL
img_src = 'https://www.symansbon.cn/' + img
else:
img_src = img
# 根据url下载图片 .content 获取二进制数据
img_data = requests.get(url=img_src, headers=header).content
# img_src='Uploadfiles/Picture/2022-8-5/2022851751539645.jpg' 取xxx.jpg作为图片名称
img_name = str(img).split('/')[-1]
# 拼接图片的保存路径
img_url = './saimenshibo/' + img_name
# 第一部获取的页面上只是获取了所有图片的url,需要根据指定的URL去二进制下载对应图片数据
with open(img_url, 'wb') as fp:
fp.write(img_data)
print('下载成功')
print('下载完成!')

补充关于python re模块中re.S, re.U, re.I, re.M, re.X

修饰符 描述
re.I 忽略大小写
re.L 做本地化识别(locale-aware)匹配
re.M 多行匹配,影响 ^ 和 $
re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B
re.X 为了增加可读性,忽略空格和 # 后面的注释

Python爬虫抓取图片(re模块处理正则表达式)的更多相关文章

  1. python 爬虫抓取心得

    quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quo ...

  2. python爬虫抓网页的总结

    python爬虫抓网页的总结 更多 python 爬虫   学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自 ...

  3. Python爬虫与数据分析之模块:内置模块、开源模块、自定义模块

    专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...

  4. [python爬虫] 爬取图片无法打开或已损坏的简单探讨

    本文主要针对python使用urlretrieve或urlopen下载百度.搜狗.googto(谷歌镜像)等图片时,出现"无法打开图片或已损坏"的问题,作者对它进行简单的探讨.同时 ...

  5. Python爬虫----抓取豆瓣电影Top250

    有了上次利用python爬虫抓取糗事百科的经验,这次自己动手写了个爬虫抓取豆瓣电影Top250的简要信息. 1.观察url 首先观察一下网址的结构 http://movie.douban.com/to ...

  6. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  7. 转载:用python爬虫抓站的一些技巧总结

    原文链接:http://www.pythonclub.org/python-network-application/observer-spider 原文的名称虽然用了<用python爬虫抓站的一 ...

  8. python爬虫—爬取英文名以及正则表达式的介绍

    python爬虫—爬取英文名以及正则表达式的介绍 爬取英文名: 一.  爬虫模块详细设计 (1)整体思路 对于本次爬取英文名数据的爬虫实现,我的思路是先将A-Z所有英文名的连接爬取出来,保存在一个cs ...

  9. 用python爬虫抓站的一些技巧总结 zz

    用python爬虫抓站的一些技巧总结 zz 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本, ...

  10. python爬虫抓站的一些技巧总结

    使用python爬虫抓站的一些技巧总结:进阶篇 一.gzip/deflate支持现在的网页普遍支持gzip压缩,这往往可以解决大量传输时间,以VeryCD的主页为例,未压缩版本247K,压缩了以后45 ...

随机推荐

  1. webSocket前端+nodejs后端简单案例多人在线聊天

    一:下面是一个简单的案例,回车发送消息,多人在线聊天 1.前端代码 <!DOCTYPE html> <html> <head> <meta charset=& ...

  2. three.js一步一步来--如何画出一个转动的正方体

    基础知识--正方体代码如下 <template> <div style="width:1000px; height:800px"> <h1>正方 ...

  3. 动力节点—day05

    数组 Java语言当中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object 数组实际上是一个容器,可以同时容纳多个元素(数组是一个数据集合),多个数据元素的类型必须是一致的 数组当中 ...

  4. 如何又快又好实现 Catalog 系统搜索能力?火山引擎 DataLeap 这样做

      摘要 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理.资产.安全等全套数据中台建设,降低工作成本和数据维护成本.挖掘数据价 ...

  5. OpenMP For Construct dynamic 调度方式实现原理和源码分析

    OpenMP For Construct dynamic 调度方式实现原理和源码分析 前言 在本篇文章当中主要给大家介绍 OpenMp for construct 的实现原理,以及与他相关的动态库函数 ...

  6. C-02\规范及随机数rand()原理

    小知识点 assert()函数 assert 断言函数,用于在调试过程中捕捉程序的错误.对某种假设条件进行检测,如果条件成立就不进行任何操作,如果条件不成立就捕捉到这种错误,并打印出错误信息,终止程序 ...

  7. 不像JVM的JVM

    1.面向对象 面向对象的思想:将功能封装到对象中,通过对象去实现 面向对象的目的:将复杂的事情简单化,将以前过程中的执行者变成了指挥者且符合现在人们的思考习惯 面向对象的三大特征: 封装:将对象的实现 ...

  8. Vue框架:7、Node环境搭建,Vue-cli,es6导出、导入语法,跨域问题解决方法,小练习

    前端开发之Vue框架 一.Node环境搭建 什么是Node或NodeJS: node js是一门后端语言 JavaScript只能运行在浏览器中,因为浏览器中有他的解释器环境 基于谷歌浏览器的v8引擎 ...

  9. .NET 8 预览版 1:NativeAOT 升级和新的Blazor United

    .NET团队 今天在官方博客上 发布了.NET 8的第一个预览版,.NET 8 是一个长期支持 (LTS) 版本[1],.NET 的版本包括产品.库.运行时和工具,是 Microsoft 内部和外部多 ...

  10. python批量修改一个文件夹下含多个文件夹中的所有图片名称

    网上能找到的,大多是只对一个文件夹下所有图片进行重命名的代码. 这边实现的是,一个文件夹下有多个文件夹内图片的重命名. rename.py #!/usr/bin/python # -*- coding ...