爬虫爬取网络图片(正则表达详细版)

您所在的位置:网站首页 如何用python爬取百度图片 爬虫爬取网络图片(正则表达详细版)

爬虫爬取网络图片(正则表达详细版)

2023-12-20 15:01| 来源: 网络整理| 查看: 265

目录 re式匹配匹配类型匹配代码 匹配网页指定关键字匹配详情 爬取网页图片爬取详情

re式匹配 匹配类型 导入库

import re

类型一(正则表达式匹配): re.complie() 参数: \d 表示 匹配数字 [m-n]表示匹配m到n区间内的数字,字母 {m,n} 该限定符的意思是至少有m个重复,至多有n个重复(数字长度最少为m+1,最长为n+1) 实例:[1-9]\d{4,10}表示匹配1到9区间的数字,至少有4个重复,最多有10个重复

类型二: re.match() 匹配方式:从总字符串的第一个字符去对应要匹配的字符串(一 一对应,开头或者中间不同则之间匹配失败) 参数:字符串 ‘abc’

类型三: re.search() 匹配方式:从总字符串的第一个字符去查找要匹配的字符串(存在则匹配成功) 参数:字符串 ‘abc’

类型四: re.findall(pattern, String, flags=0) 参数:String为总字符串。 pattern = re.compile(es, re.S) 设置re.S则不会对\n进行中断 es为正则表达式

匹配代码 类型一 import re pattern = re.compile("[1-9]\d{4,10}") Str = "我的qq号码为2324324666888" lis = re.findall(pattern , Str , flags=0) print(len(lis[0]))

运行结果: [‘23243246668’]

类型二 import re line = "Cat are smarter than dogs" matchObj = re.match(r'dogs', line) if matchObj: print("match->matchObj.group():",matchObj.group()) else: print("No match!!") searchObj = re.search(r'dogs', line)

运行结果: No match!!

类型三 import re line = "Cat are smarter than dogs" searchObj = re.search(r'dogs', line) print(searchObj) if searchObj: print("search->searchObj.group():",searchObj.group()) else: print("NO match!!")

运行结果: search->searchObj.group(): dogs

类型四

在匹配网页指定关键字和爬取图片模块

匹配网页指定关键字

本案列匹配的是百度首页个别中文字段匹配内容如图: 匹配字段 注意: 由于百度中的文字为js动态加载则,我们需要去先执行以下步骤:打开浏览器设置——>网站设置——>JavaScript——>将百度添加为禁止;如图:

js设置禁止

匹配详情

获取AU伪装 UA

获取对应url url

代码: import re import requests if __name__ == '__main__': # UA伪装 header = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' } # 1.指定url url = 'https://www.baidu.com/' # 2.发送请求 response = requests.get(url=url,headers=header) # 3.获取页面数据 text = response.content.decode('utf-8') fileName = 'baidu.html' with open(fileName,'w',encoding='utf-8') as f: f.write(text) # .*?为非贪婪模式,.*为贪婪模式 pattern = re.compile('class=mnav>(.*?)', re.S) result = re.findall(pattern, text, flags=0) for i in result: print(i)

运行结果: 新闻 hao123 地图 视频 贴吧

爬取网页图片

本案列为爬取糗事百科图像中的图片

爬取详情

获取有效url url

获取UA伪装 UA1

下载图片

使用聚焦爬虫

代码:

import requests import re import os if __name__ == '__main__': # UA伪装 header = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36' } # 编写通用爬虫获取网页源码 url = 'https://www.qiushibaike.com/imgrank/' response = requests.get(url=url,headers=header) html = response.text # print(html) # 进行数据解析,获取目标url es = 'target="_blank">\n


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3