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. flutter 1.升级2.X在模型类中序列化JSON报错Non-nullable instance field 'title' must be initialized.

    flutter 1.升级2.X在模型类中序列化JSON报错 Non-nullable instance field 'title' must be initialized. Try adding an ...

  2. Nodejs后端自动化测试

    偶然看到收藏一下 const puppeteer = require('puppeteer'); const fs = require('fs'); (async () => { const b ...

  3. 【Redis场景3】缓存穿透、击穿问题

    场景问题及原因 缓存穿透: 原因:客户端请求的数据在缓存和数据库中不存在,这样缓存永远不会生效,请求全部打入数据库,造成数据库连接异常. 解决思路: 缓存空对象 对于不存在的数据也在Redis建立缓存 ...

  4. 包装类总结-Collection集合概述

    包装类总结 1.基本数据类型对应的包装类byte Byteshort Shortint Integerlong Longfloat Floatdouble Doublechar Characterbo ...

  5. 使用VMware Converter Standalone P2V(物理机转换虚拟机)

    使用VMware Converter Standalone P2V(物理机转换虚拟机) 环境说明: 1.P2V软件:VMware-converter-en-6.3.0-20575345  下载地址:v ...

  6. My First Blog Ever——记我在交大ACM班的第一个学期

    很巧的是,就在俞老师下发"学期小结"这一任务的前一天,我在跟朋友聊天时想到了要将自己这一学期的经历以文字的形式留存.毕竟,过去的一个学期实在有太多东西值得记述了:我离开了自己从童年 ...

  7. Tengine01

    1 简介 Tengine是nginx的一个版本 Tengine文档:http://tengine.taobao.org/ nginx官网: http://nginx.org Nginx (" ...

  8. springboot如何在拦截器中拦截post请求参数以及解决文件类型上传问题

      我们经常有这样一个场景,比如:在springboot拦截器中想截取post请求的body参数做一些中间处理,或者用到自定义注解,想拦截一些特定post请求的方法的参数,记录一些请求日志. 想到了使 ...

  9. Android  JetPack~ LiveData (一)   介绍与使用

    一般情况下LiveData都是搭配这ViewModel使用,这里先介绍一下LiveData,再结合ViewModel使用 Android数据绑定技术一,企业级开发 Android数据绑定技术二,企业级 ...

  10. 视觉十四讲:第七讲_ORB特征点

    1.特征点 特征点是图像里一些特别的地方,如角点.边缘和区块.比较著名有SIFT.SURF.ORB等.SIFT充分考虑了图像变换过程中出现的光照.尺度.旋转等变换,但是计算量非常大.而ORB是质量和性 ...