爬虫----爬取网页图片(以大熊猫为例)

2023-12-22 22:40

本文主要是介绍爬虫----爬取网页图片(以大熊猫为例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

什么是爬虫?

爬虫就是自动获取网页内容的程序,例如搜索引擎,Google,Baidu 等,每天都运行着庞大的爬虫系统,从全世界的网站中爬虫数据,供用户检索时使用。

爬虫流程

其实把网络爬虫抽象开来看,它无外乎包含如下几个步骤

  • 模拟请求网页。模拟浏览器,打开目标网站。
  • 获取数据。打开网站之后,就可以自动化的获取我们所需要的网站数据。
  • 保存数据。拿到数据之后,需要持久化到本地文件或者数据库等存储设备中。

一.导入相应的库

二. 获取网站源码

我们需要创建一个函数获取源码

其中 utf-8为源代码的中文编码,response.status_code==200 表示网站源代码获取正确

三.提取图片的源地址

这时候需要用到正则表达式 

要重点关注这个“thumbURL”可根据这个找到图片的网址

四.获取图片的二进制码

五.定义一个新建文件夹程序

创建一个文件夹目录 保存图片

六.保存图片

七. 定义一个main函数

1.点击鼠标右键 找到检查

2.然后点击网络-fetch-标头-请求url--再复制其路径

将其复制到这...

3.再将其请求标头复制下来粘贴至headers处位置。

注意:复制前请加三个双引号 减少一些换行。

4.点击负载--将其下面的内容复制下来

粘贴至此处八.爬取图片

使用一个for循环遍历列表 自动爬取图片以上就是如何爬取图片的全部内容

下面是源代码

# 获取网站源代码
def get_html(url,headers,params):response=requests.get(url,headers=headers,params=params)# 设置源代码的编码方式response.encoding="utf-8"# response.status_code ==200:return response.text# else:# print("网站源代码获取错误")# 提取图片的源地址
def parse_pic_url(html):result = re.findall('"thumbURL":"(.*?)"',html,re.S)return result
# 获取图片的二进制码
def get_pic_content(url):response = requests.get(url)return response.content# 保存图片
def save_pic(fold_name,content,pic_name):with open(fold_name+"/"+str(pic_name)+".jpg", "wb")as f:f.write(content)f.close()# 定义一个新建文件夹的程序
def create_fold(fold_name):# 加异常处理try:os.mkdir(fold_name)except:print("文件夹已存在")# 定义一个main函数调用get_html函数
# 乱码的话 把br去掉
def main():# 输入文件夹的名字fold_name=input("请输入要抓取图片的名字:")# 输入要抓取的图片页数page_num=input("请输入要抓取的多少页?(0,1,2,3,4.....)")# 调用函数,创建文件夹create_fold(fold_name)# 定义图片名字pic_name=0# 架构循环,控制页面for i in range(int(page_num)):url='https://image.baidu.com/search/acjson?tn=resultjson_com&logid=12466994017284006009&ipn=rj&ct=201326592&is=&fp=result&fr=ala&word=%E5%A4%A7%E7%86%8A%E7%8C%AB%E5%9B%BE%E7%89%87&queryWord=%E5%A4%A7%E7%86%8A%E7%8C%AB%E5%9B%BE%E7%89%87&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=&copyright=&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&expermode=&nojc=&isAsync=&pn=120&rn=30&gsm=78&1695863913502='headers={"Accept":"text/plain, */*; q=0.01","Accept-Encoding":"gzip, deflate","Accept-Language":"zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6","Connection":"keep-alive","Cookie":'BDqhfp=%E5%A4%A7%E7%86%8A%E7%8C%AB%E5%9B%BE%E7%89%87%26%26NaN-1undefined%26%263876%26%264; BIDUPSID=2DDA08F2489166F8296AF37F32E27AC5; PSTM=1657273565; BDUSS=d1dzVkRzBkNDI5bzBYYXpkbFFTUThrbU9RWHZDRVFLWU5ERDlYRWNROXdhVzVqSVFBQUFBJCQAAAAAAAAAAAEAAAA7gbiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHDcRmNw3EZjT2; BDUSS_BFESS=d1dzVkRzBkNDI5bzBYYXpkbFFTUThrbU9RWHZDRVFLWU5ERDlYRWNROXdhVzVqSVFBQUFBJCQAAAAAAAAAAAEAAAA7gbiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHDcRmNw3EZjT2; BAIDUID=1D4F926B02D9111225B14B9D71AAF576:FG=1; indexPageSugList=%5B%22IndentationError%3A%20unindent%20does%20not%20match%20any%20outer%20indentation%20level%22%5D; BAIDUID_BFESS=1D4F926B02D9111225B14B9D71AAF576:FG=1; BA_HECTOR=a12l848g0g0g058ka580a02v1ih7p2m1p; ZFY=N9wyLiRfHuUeTr4zDV5tCQ2wwc4SwgwmeE0lKZEByLc:C; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; RT="z=1&dm=baidu.com&si=5759fd95-e463-4960-9c0b-89d93e94682f&ss=ln1gxjpu&sl=9&tt=h12&bcn=https%3A%2F%2Ffclog.baidu.com%2Flog%2Fweirwood%3Ftype%3Dperf&ld=sgz0&ul=1ol8m&hd=1olbp"; BDRCVFR[kSyA9a8U-kc]=mk3SLVN4HKm; delPer=0; PSINO=1; BDRCVFR[WDXKkmmntP_]=bF2OOhpFAEmuvN4rjT8mvqV; H_PS_PSSID=; BDRCVFR[dG2JNJb_ajR]=mk3SLVN4HKm; userFrom=ala; BDRCVFR[-pGxjrCMryR]=mk3SLVN4HKm; ab_sr=1.0.1_MzY1MmM4ODNmY2M3MDgzNTExNGUzZTgxNzQwMDI4ZTIyNGMwZWJkZWY2NzBiMTc4OGE5YWY5M2FmZTVlZTRhYTljNGRkN2M5NzllNTI5ZmQwMDJjNjMyZDFjMWU3OTZhZDUxNjFkMDA2YjAyYTM1OTQ1NTNmYWE3YjE2OGVkNDE0NWJkZThkNDY4MDVkZWQ1NGY3NDQ3NTliMGE0N2U3Ng==',"Host":"image.baidu.com","Referer":"https://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gb18030&word=%B4%F3%D0%DC%C3%A8%CD%BC%C6%AC&fr=ala&ala=1&alatpl=normal&pos=0&dyTabStr=MTEsMCw0LDMsMSw2LDUsMiw4LDcsOQ%3D%3D","Sec-Ch-Ua":'"Microsoft Edge";v="117", "Not;A=Brand";v="8", "Chromium";v="117"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"Windows"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.41","X-Requested-With":"XMLHttpRequest"}params={"tn": "resultjson_com","logid": "11255705298364100810","ipn": "rj","ct": "201326592","fp": "result","word": fold_name,"queryWord": fold_name,"cl": "2","lm":"-1","ie": "utf-8","oe": "utf-8","pn": str(int(i+1)*30),"rn": "30","gsm": "1e",}#   爬取网站的时候 不粘贴header时 网站会以为是爬虫 就会乱码 再从检查那找到header 粘贴下来 先打三个双引号,再加引号和逗号 注意报错 url后不加逗号# 运行完了之后 找到thumbURL 这是爬取图片或者视频的链接# params={}html =get_html(url, headers,params)result= parse_pic_url(html)# 定义图片的名字# pic_name = 0#    使用for循环遍历列表for item in result:# print(item)#调用函数,获取图片的二进制源码pic_content= get_pic_content(item)# 调用函数保存图片# print(pic_content)save_pic(fold_name,pic_content,pic_name)pic_name +=1# 自加等于1print("正在保存第 "+str(pic_name)+"张图片")# 把所有代码放到for循环里面 按tab键
# 执行main函数if __name__ == '__main__':main()

这篇关于爬虫----爬取网页图片(以大熊猫为例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/525737

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

Spring MVC 图片上传

引入需要的包 <dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-

禁止复制的网页怎么复制

禁止复制的网页怎么复制 文章目录 禁止复制的网页怎么复制前言准备工作操作步骤一、在浏览器菜单中找到“开发者工具”二、点击“检查元素(inspect element)”按钮三、在网页中选取需要的片段,锁定对应的元素四、复制被选中的元素五、粘贴到记事本,以`.html`为后缀命名六、打开`xxx.html`,优雅地复制 前言 在浏览网页的时候,有的网页内容无法复制。比如「360

Prompt - 将图片的表格转换成Markdown

Prompt - 将图片的表格转换成Markdown 0. 引言1. 提示词2. 原始版本 0. 引言 最近尝试将图片中的表格转换成Markdown格式,需要不断条件和优化提示词。记录一下调整好的提示词,以后在继续优化迭代。 1. 提示词 英文版本: You are an AI assistant tasked with extracting the content of

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

火语言RPA流程组件介绍--浏览网页

🚩【组件功能】:浏览器打开指定网址或本地html文件 配置预览 配置说明 网址URL 支持T或# 默认FLOW输入项 输入需要打开的网址URL 超时时间 支持T或# 打开网页超时时间 执行后后等待时间(ms) 支持T或# 当前组件执行完成后继续等待的时间 UserAgent 支持T或# User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器