- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
如何使用Python抓取和优化所有网站图像
目录要求和假设安装模块导入Python模块启动网络爬网规范化和修剪爬网数据创建输出文件夹处理图像的网址流程映像优化图像结论我发布了一个通过FTP自动优化新图像的教程。这次我们将抓取整个网站,并在本地优化我们遇到的图像,按URL组织。
请注意,这个简短但中级的脚本不适用于大型站点。首先,所有图像都转储到一个文件夹中。为每个页面创建一个新文件夹并不困难,但即便如此,您也可能有数量无法管理的文件夹。未优化的图像仍然是未通过Web核心指标的罪魁祸首。让我们开始!
要求和假设
已安装Python3并理解基本的Python语法
访问Linux安装(我推荐Ubuntu)或宝塔
安装模块
在我们开始之前,请记住注意您在此处复制的任何内容的缩进,因为有时代码片段无法完美复制。下面的所有模块都应该在核心Python3中。我发现我需要将PIL更新到最新版本8.2,您可以通过终端中的以下命令执行此操作(如果使用GoogleColab,请在开头加上感叹号):
另外,我们需要安装EliasDabbas的advertools模块
pip3installPIL--upgrade
pip3installadvertools
advertools:使用刮擦处理抓取pandas:帮助规范化爬网数据os:用于制作映像目录requests:用于下载图像PIL:处理图像压缩shutil:处理在本地保存图像
导入Python模块
让我们首先导入上面描述的这个脚本所需的模块。
importadvertoolsasadv
importpandasaspd
importos
importrequests#togetimagefromtheweb
importshutil#tosaveitlocally
fromPILimportImage
importPIL
启动网络爬网
我们需要做的第一件事是定义网络爬虫的起始URL。99%的时间这应该是你的主页。然后我们在advertools中运行adv.crawl()函数,并将输出保存为crawl.jl,然后将其加载到crawlme数据帧中。此过程可能需要几分钟,具体取决于您的网站有多大。我不建议在页面或图像超过数万个的非常大的网站上使用此脚本。一般来说,爬虫非常快,只需几秒钟即可处理这个博客。另外,请注意,某些使用Cloudflare或其他防火墙的站点最终可能会在某个时候被阻止。
site_url=
adv.crawl(site_url,crawl.jl,follow_links=True)
crawlme=pd.read_json(crawl.jl,lines=True)
规范化和修剪爬网数据
使用我们的数据帧,我们可以开始规范化和修剪数据,使其仅满足我们的需要。通常有很多nan和空白值,因此我们删除这些行。
crawlme.dropna(how=all)
crawlme.drop(crawlme[crawlme[canonical]==nan].index,inplace=True)
crawlme.drop(crawlme[crawlme[img_src]==].index,inplace=True)
crawlme.reset_index(inplace=True)
爬网数据帧包含大量爬网数据。出于我们的目的,我们只需要规范列和img_src列。我们选择这些列并将它们转换为字典对象。
url_images=crawlme[[canonical,img_src]].to_dict()
接下来,我们设置一个计数器来帮助循环访问图像键和一个名为dupes的列表变量来存储我们已经处理过的图像的URL,这样我们就不会再次处理它们。
x=0
dupes=[]
创建输出文件夹
现在我们希望创建两个文件夹。一个用于存储原始文件,以防您需要还原它们,另一个文件夹用于存储优化的图像。如果这些文件夹已经存在,它只是将路径发送到变量中。
try:
path=os.getcwd()+/images/
optpath=os.getcwd()+/images_opt/
os.mkdir(path)
os.mkdir(optpath)
except:
path=os.getcwd()+/image
您可能关注的文档
最近下载
- 飞利浦HTS5540 93家庭影院说明书.pdf
- 面馆促销聚人气方案.docx VIP
- 《中国文化概况》带翻译版.pdf VIP
- 人教版数学六年级下册比例(课件).pptx VIP
- 旧版现代西班牙语第1册 课文+答案.pdf VIP
- 2023年贵州贵州高速公路集团有限公司招聘笔试真题.docx VIP
- 变电站运行中倒闸防误操作及对策.doc VIP
- 汽车车身制造技术 项目三 车身焊装工艺.ppt VIP
- Chapter 4 Lending a hand (课件)-2024-2025学年新思维小学英语5A.pptx VIP
- 2025-2030中国会展行业市场发展现状分析及发展趋势与投资前景研究报告.docx
文档评论(0)