python爬虫爬取某网站全站图片案列(源码全给可白漂,仅供学习使用,切勿用作非法用途)

news/2024/5/10 23:21:10/文章来源:https://blog.csdn.net/qq_52553510/article/details/121202305

爬取后保存的图片效果图

在这里插入图片描述

步骤入下(三步):

    1. 先去要爬取的目标网站(https://pixabay.com/)去注册一个账号。
      在这里插入图片描述
  • 2.注册后登录,浏览器右键鼠标,打开检查,找到登录后的cookies值。
    在这里插入图片描述
  • 3.运行源代码(源代码在文末给出)
    在这里插入图片描述
    输入登录后的cookies值,以及要开始爬取的页面数。回车即可。
    (文件爬取的下载路径可以自行在源代码中修改)
    爬取的过程中的日志

源代码

#encoding:utf-8
import httpx
from bs4 import BeautifulSoup
import os
import zipfile
import time
import randomcookies = str(input("请输入登陆后的cookie值:")).replace('\n', '').replace('\t', '')
headers = {'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',# 'accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9','cookie': cookies,'referer': 'https://pixabay.com/photos/search/?pagi=2&','sec-ch-ua': '"Chromium";v="94", "Google Chrome";v="94", ";Not A Brand";v="99"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"','sec-fetch-dest': 'document','sec-fetch-mode': 'navigate','sec-fetch-site': 'same-origin','sec-fetch-user': '?1','upgrade-insecure-requests': '1','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36',
}def getimgindex(page):url = f"https://pixabay.com/zh/photos/search/?pagi={page}&"client = httpx.Client(http2=True,verify=False)res = client.get(url,headers=headers,timeout=20)html = BeautifulSoup(res.content,'lxml')imgurl = html.find_all('div',class_="row-masonry-cell-inner")for img in imgurl:photo = img.find_all('img')[0]title = photo['alt']if 'Sponsored image' not in title:try:data_lazy = photo['data-lazy']except:data_lazy = photo['src']data_lazy = str(data_lazy).split('/')[-1].split('_')[0]downloadUrl = f'https://pixabay.com/zh/images/download/container-ship-{data_lazy}.jpg?attachment'filename = data_lazy.split('-')[-1]downloadpath = f"data/{filename}" #下载路径createFile(downloadpath) # 创建下载路径文件夹taginfo = str(title).replace(', ',"_")downloadfilename = f"data/{filename}/{filename}_{taginfo}" #文件夹名称 无后缀名download(downloadUrl, downloadfilename)def download(url,filename):client = httpx.Client(http2=True, verify=False)res = client.get(url, headers=headers, timeout=20)with open(f'{filename}.jpg', 'wb') as f:f.write(res.content)f.close()print(f'{filename} Download successful!')def zipDir(dirpath,outFullName):"""压缩指定文件夹:param dirpath: 目标文件夹路径:param outFullName: 压缩文件保存路径+xxxx.zip:return: 无"""zip = zipfile.ZipFile(outFullName,"w",zipfile.ZIP_DEFLATED)for path,dirnames,filenames in os.walk(dirpath):# 去掉目标跟路径,只对目标文件夹下边的文件及文件夹进行压缩fpath = path.replace(dirpath,'')for filename in filenames:zip.write(os.path.join(path,filename),os.path.join(fpath,filename))zip.close()def createFile(filename):"""创建文件夹"""while True:filepath = f"{filename}"if os.path.isdir(filepath):breakelse:os.makedirs(filepath)
def wirteTxt(filename,content):"""写入数据"""with open(f'{filename}', 'a+', encoding='utf-8') as f:f.write(str(content) + '\n')f.close()print(f'{content} 正在写入')def runs():while True:try:p = int(input("请输入开始页码:"))except:passelse:n = 0for x in range(p,12221):n += 1if n % 15 == 0:randomTime = random.randint(10, 30)print(f"休息{randomTime}秒后继续爬取!")time.sleep(randomTime)randomTime = random.randint(1,5)print(f"{randomTime}秒后开始爬取")time.sleep(randomTime)nowtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())text = f"{nowtime} ———————— 第{x}页"wirteTxt('loging.txt',text)getimgindex(x)breakif __name__ == '__main__':runs()

结束语

  • 有问题,或者是更好的方法,欢迎大家指正,私信我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_819862.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9月第2周国内新闻网站:中国网覆盖数半年翻4番

根据国际统计机构Alexa公布的最新数据显示,9月第2周(2013-09-09至2013-09-15)新闻类网站/频道排行首位是QQ新闻,其用户覆盖数为13200,第二位是覆盖数为9920的新浪新闻,第三位是9287的网易新闻。下面是具体情…

25个最新的免费的创意和美丽的CSS网站模板

对于HTML或超文本标记语言的理解,是Internet Explorer或Mozilla Firefox网页浏览器所使用的编码语言。所有的网页设计使用这种语言。HTML是网页设计当中一些简单的标记元素,但如果你想要展现出更好看的东西,那么你应该选择CSS。可以说&#x…

什么是闭包(Groovy) - flyleave - ITeye技术网站

什么是闭包(Groovy) - flyleave - ITeye技术网站什么是闭包(Groovy) 博客分类:Grails & GroovyGroovyJavaCCC# Groovy的闭包就像一个代码段或者说方法指针。它是一段被定义并在稍后的时点上运行的代码。Simple ExampleJava代码 def clos { println "hell…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

大型网站技术架构(一)大型网站架构演化

2019独角兽企业重金招聘Python工程师标准>>> 看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及ses…

大型网站系统架构分析[转]

千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性? 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理:负载量不大的情况下select、…

SEO完全手册之title优化

在我的博客发布了《花钱最少的推广方式之SEO》文章后,受到了很多看官的关注,再次万分感谢大家!从今天开始,我会每天更新一篇SEO优化的东西,也希望大家喜欢。在这里,我就不阐明搜索引擎工作的原理了&#xf…

从graphis链接到我的网站?

今天早上登陆Google分析,发现昨天的网站点击来源里居然有这么一项……有没有人能解释一下这是为什么?

springboot线程池_SpringBoot入门建站全系列(二十二)异步任务执行的几种方式

SpringBoot入门建站全系列(二十二)异步任务执行的几种方式一、概述异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完…

网站推荐:The Python Challenge 第一个编程解谜站点

The Python Challenge是一个过关式的解谜站点,使用的是经典在线解谜站点Not Pr0n的模式:根据提示找出下一关的网页地址。和Not Pr0n不同的是,在每一关里你都需要编写程序来寻找答案。虽然这个解谜站点的名字叫做Python Challenge,…

网站推荐:blackflip 基于Flash的web 2.0解谜游戏站

blackflip是一个有趣的智力游戏。在每一个关卡里,你需要画一条不自交的路线,这条路线经过的所有格子都将会反色,游戏的目标就是要让反色后同一行的所有格子恰好都同色。游戏规则很简单,但有一些关卡特别费脑子。我很喜欢这个游戏的…

网站页面左右_诠网科技|杭州网站建设成本都用在了哪里呢?

杭州网站建设成本都用在了哪里呢?企业到底为什么要做一个自己的网站呢?企业建站不是为了赶一时的潮流,企业建站只有把网络推广技术同企业的管理系统、服务系统和商务系统紧密地集成,才能发挥企业网站优化的作用。不过企业网站建设…

网站推荐:archimy.com 在线函数图象绘制

archimy.com是刚建立的一个在线数学工具,给人的第一印象非常不错。这个网站可以在线绘制出2D和3D的函数图象,支持参数方程,支持三角函数、反三角函数、对数、绝对值、取整、较大、较小等多种函数。你可以设定函数图象的绘制范围和取样步长。绘…

html 5 浏览器兼容性测试网站

为什么80%的码农都做不了架构师?>>> 浏览器兼容性测试网站 http://caniuse.com/ 转载于:https://my.oschina.net/doz/blog/497347

SEO细分领域项目汇总

因为自己也在从事网络营销业务,所以会经常分析一些的营销手法,今天卢松松整理了一下在百度体系下SEO的一些业务。本文介绍了一些SEO项目,里面有一些细节,仔细思考一下,也许你会发现新项目。(重点看第三条)1&#xff0c…

服务器 网站 未备案,域名解析到未备案服务器

域名解析到未备案服务器 内容精选换一换公网域名解析是基于Internet网络的域名解析过程,可以把人们常用的域名(如www.example.com)转换成用于计算机连接的IP地址(如1.2.3.4)。公网域名解析支持通过直接在浏览器中输入域名,访问网站或Web应用程序。云解析…

大型网站数据库架构分析

涉及知识点: 1,主从复制,读写分离 对主库修改数据,查询使用从库。一主多从,来降低数据库读取压力。2,分库分表 查看详情根据实体业务来分库,分表。如,根据数据的活跃性&#xff0c…

python 判断 网站是否是动态_错过金三银四,但是你不能错过这份Python面试大全...

最近听说很多同学在刷面试题,所以这里给大家整理了一下,现在企业面试的一些重灾区,我从大量的题目中总结了很多的知识,同时也对一些题目进行拓展了,但是在看了网上的大部分面试题不是很满意,一个是有些部分…

html 分页 惰性加载,懒加载实现的分页网站footer自适应

最近在做手机端,发现下拉刷新和上拉加载的jq控件很少而且自我感觉不好用,比如iscroll之类……然后自己写了个懒加载的,也很简单,最基础的代码【不喜勿喷,但蛮实用的】wap手机端懒加载分页:用之前先引用下jq…

怎么看网站调用了哪些js_SEO技术-蜘蛛评判网站内容质量高低看哪些细节

“内容为王”这句话是SEO站长一直以来不离口的一句话,从中反映出网站内容是网站排名优化的重中之重。网站内容的质量高低也是影响着蜘蛛评判网站打分的重要因素,一个高质量内容的页面一定是比低质量内容页面收录好,这是毋庸置疑的。对于SEO来…