基于Python与Requ...模块的网络图片爬虫程序设计_姜庆玲.pdf
《基于Python与Requ...模块的网络图片爬虫程序设计_姜庆玲.pdf》由会员分享,可在线阅读,更多相关《基于Python与Requ...模块的网络图片爬虫程序设计_姜庆玲.pdf(4页珍藏版)》请在咨信网上搜索。
1、2023.6电脑编程技巧与维护作者简介:姜庆玲(1991),女,教师,硕士,研究方向为计算机基础应用、数据分析与数据挖掘。基于 Python 与 Requests 模块的网络图片爬虫程序设计姜庆玲,张樊(武昌工学院,武汉430065)摘要:在互联网的时代背景下,从大量的网络信息中快速获取批量的图片资源,是一个值得研究的论题。在此基于 Python 爬虫框架中的 5 个部分,按照 Requests 模块的 6 个步骤,实现快速且批量获取网络图片的爬虫程序设计。实验结果表明,该爬虫程序代码量少、思路清晰、简单易学、结果正确,具有一定的实用性。关键词:爬虫程序;Requests 模块;图片爬虫1概述
2、随着“互联网+”时代的到来,人们获取信息的方式渐渐从报刊等传统媒体转为从互联网上获取,信息的时效性和全面性不断提高。网络上的各种的信息也便于人们根据各自需求保存下载,这么多的数据,如何快速获取并保存到本地,就是一个非常重要的问题。文字与图片是构成一个网页的两个基本的元素,文字表示网页内容;图片体现网页的美观1。文字的获取方式比图片简单,在此将主要介绍网页中图片的获取,设计一种爬虫程序,实现运行一次爬虫程序就可以获取多张网络图片的功能。现有的爬虫技术大多聚焦于文字信息的获取,例如获取各种新闻网站、网购网站、招生网站等各大网站的文字信息26,或者关注点在各种爬虫框架的研究,例如,比较3种主流爬虫框
3、架的优势和缺点,并给出最佳的网页爬虫设计方案78。在已有的研究中,也有极少的学者对图片的爬取展开研究,例如,唐婷9、王金峰10、涂辉11分别使用Requests模块、Flickr API、urllib库实现单张网络图片的获取;仇明12提出使用Beautifulsoup库来分析网页链接、图片链接,再使用Requests库进行页面的访问、文件的下载。在此提出的爬虫程序仅使用Requests模块按照简单的步骤即可实现多张网络图片的获取。2相关技术2.1爬虫及 Python爬虫,顾名思义是一种能够爬行的“虫子”,这个“虫子”在互联网上爬行能够获取各种信息,一般是以程序的形式实现。现阶段,能够快速实现爬
4、虫程序的语言是Python语言。该语言免费开源、语法简单、可移植性强,并且拥有丰富的库,基于上述优点,采用Python设计爬虫程序。随着Python中的爬虫库越来越多,逐步形成Python爬虫架构,该框架主要由5个部分组成,分别是调度器、统一资源定位符(URL)管理器、网页下载器、网页解析器和应用程序。调度器的作用是负责协调其他4个部分的工作,URL管理器的作用是集中管理待爬取和已爬取的网页URL,网页下载器的作用是根据URL下载对应的网页,网页解析器的作用是根据用户的需求提取信息并保存,应用程序的作用是将提出的信息进行处理并运用。2.2Requests 模块Requests模块基于Apach
5、e2使用Python编写超文本传送协议(HTTP)库,它比urllib2模块更简洁,并支持使用cookie保持会话、文件上传、自动响应内容的编码、国际化的URL和POST数据自动编码等功能。Re-quests模块进行了更高度的封装,从而在进行网络请求时,操作更人性化且更便捷。使用Requests模块实现Python爬虫框架的主要步骤如下。(1)导入Requests模块。(2)设置请求头headers。(3)设置待爬取的网页URL。(4)发送请求并保存反馈的信息。(5)对页面进行解析并保存关键数据。(6)处理关键数据并运用。其中,第(3)步属于URL管理器的实现;第(4)步属于网页下载器的实现;
6、第(5)步属于网页解析器的实现;第(6)步属于应用程序的实现。3实现思路以百度图片网页为例,在该网页下根据输入的关键词可以获取多张对应的图片,爬虫程序的流程如图1所示。59DOI:10.16184/prg.2023.06.0142023.6电脑编程技巧与维护4具体实现采用Windows 10操作系统下安装的Python 3.7环境,使用PyCharm 2019进行程序编写,并已安装好re-quests第三方包,下面介绍关键代码的编写过程。4.1导入模块使用import关键字导入所需的模块文件,主要需要requests、os、re这3个包文件,编写代码如下。import requestsimpo
7、rt osimport re4.2设置请求头请求头的设置便于服务器识别访问者身份,便于获取响应信息,一般设置User-Agent即可,不同浏览器的User-Agent不同,需要单击页面中右键打开页面调试器,找到“网络”选项卡中任意一项资源的请求标头,如图2所示。在请求标头中,将第一项Accept和最后一项User-Agent的字段均复制到headers变量,其中,Accept表示浏览器能接收的资源类型,添加此设置,可以尽可能多地获取服务器反馈的数据信息。因此,编写代码如下。headers=User-Agent:Mozilla/5.0(Windows NT 10.0;Win64;x64)Appl
8、eWebKit/537.36(KHTML,like Gecko)Chrome/111.0.0.0 Safari/537.36,Accept:text/html,application/xhtml+xml,applica-tion/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.74.3设置待爬取的页面 URL在百度图片网站中,根据搜索的关键词不同,显示的图片也不相同,根据用户输入的图片关键词搜索相应的图片,编写代码如下。urlFirst=ht tps:/ getI
9、mages(urls):i=1#控制文件命名for url in urls:try:res=requests.get(url=url,headers=headers,verify=False,timeout=5)con=res.content#创建文件夹,如果不存在就创建文件夹if not os.path.exists(ky):os.makedirs(ky)#如果响应文件的类型不是图片格式就不保存if(text/html not in res.headers Content-Type):with open(ky+/.jpg.format(i),wb)as f:f.write(con)i+=1e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Python Requ 模块 网络 图片 爬虫 程序设计 姜庆玲
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。