Python爬虫抓取图片(re模块处理正则表达式)
2024-09-08 19:08:00
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 | 为了增加可读性,忽略空格和 # 后面的注释 |
最新文章
- iOS 4s-6Plus屏幕自动适配及颜色转换为十六进制
- python之路十五
- SQL Server合并版本
- 来聊聊apply和call
- UVa1593_Allgnment_Of_Code
- 【Android学习】四种布局方式
- POJ3581 Sequence(后缀数组)
- windows下忘记mysql密码怎么办
- Struts2笔记——struts.xml配置详解
- springMVC使用注解方式进行页面跳转
- 在SQL Server 2014下面使用的SQL2000的Northwind和Pubs示例数据库
- asp.net中Web使用Socket
- MVC-05 Model(1)
- Android Activity和Intent机制学习笔记
- hdu 1262 寻找素数对 数论 打表。
- 解决long类型传到前端损失精度问题
- maven配置私服
- 2017-2018-2 20155303『网络对抗技术』Final:Web渗透获取WebShell权限
- Python开发【笔记】:列表转字典
- 重载的方式写Python的get请求
热门文章
- flutter2.x报错解决type (RouteSettings) =>; Route<;dynamic>; is not a subtype of type (RouteSettings) =>; Route<;dynemic>; of function result
- Python开发的常用组件
- SEO关键词布局方法
- Java 进阶P-1.3+P-1.4
- 【Android】Android 源码方式使用 opencv 库文件
- Django框架之drf:7、认证组件,权限组件,频率组件,过滤的多种用法,排序,分页,
- 【Oculus Interaction SDK】(一)设置 VR 相机与控制器 &;&; 实现简单的抓取功能
- @ControllerAdvice解密请求,加密响应
- Opengl ES之踩坑记
- Jetpack Compose学习(10)——使用Compose物料清单BOM,更好管理依赖版本