批量下载一些图片

简介: 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:

想系统/深入学习某技术知识点…

一个人摸索学习很难坚持,想组团高效学习…

想写博客但无从下手,急需写作干货注入能量…

热爱写作,愿意让自己成为更好的人…

目标

首先想要爬取图片,我需要在网站的首页中,找到子页面的链接(因为在首页中的图片为缩略图,不够高清doge),然后请求到子页面,。

也就是说,想要把大象。。。呸

想要下载该网站的图片(高清大图),需要三步,

第一步,在主页面中拿到每个图片的子页面链接

第二步,在子页面中找到真正的图片下载链接

第三步,下载图片

第一步:拿到子页面链接

def main_page():#定义一个函数

   with open("childPage.txt",mode="w") as f:#创建一个名为childPage.txt的文件

       for i in range(1,56):#规定爬取数量

           try:

               resp = requests.get(f"https://www.umei.cc/bizhitupian/we

imeibizhi/{i}.htm")

               #

content="text/html; charset=utf-8" />

               resp.encoding = 'utf-8' # 处理中

⽂乱码, 这⾥要和⻚⾯上的charset对应

               main_page = BeautifulSoup(resp.text, "html.parser")

               typeListDiv =

               main_page.find("div", attrs={"class":"TypeList"})

               main_a_list =typeListDiv.find_all("a")

               for main_a in main_a_list:

               href = main_a.get("href") #拿到某⼀个标签中xxx属性的值

               f.write(href)

               f.write("\n")

print(f"https://www.umei.cc/bizhitupian/weimeibizhi/{i}.htm, 成功了!")

           time.sleep(0.5)

           except:

print(f"https://www.umei.cc/bizhitupian/weimeibizhi/{i}.htm, 出错了")

           print(resp.text)

           break # 也可以记录下来, 供以后查错

第二步:获取到子页面信息,找到下载图片的图片路径

def child_page():

   with open("childPage.txt", mode="r") as

f:

   for line in f:

   line = line.strip()

   resp = requests.get(line)

   resp.encoding='utf-8'

   child = BeautifulSoup(resp.text,"html.parser")

   div = child.find("div",

class_="ImageBody")

   img = div.find("img")

   if img:

       src = img.get("src")

       print(src)

   else:

       print(line, "没有图⽚")

第三步:下载图片

def download_img(src):

   with open("img/"+src.split("/")[-1],mode="wb") as f:

   resp = requests.get(src) # 下载图⽚

   f.write(resp.content) # 图⽚写⼊⽂件

   print(src, "down!")

最后运行时要把img文件设置为excluded,否则pycharm会很卡。

总结:

爬虫的基本思路

1、打开一个具体的网页

2、编写代码访问这个网页并访问数据

3、解析自己想要的数据

详细思路:

1、打开网页

2、查看网站源代码,并查找自己所需要的数据

如果有

这时候打开开发者模式,点击network。这个时候你会看到需要的数据刚好在第一个网址返回。最后编写代码爬取网页并使用xpath解析


如果没有

就打开开发者模式,点击network,刷新。这时并不能在第一个网站中就返回数据。这个时候数据是藏在其他的js等文件中。

目录
相关文章
|
6月前
|
数据采集 分布式计算 搜索推荐
使用Python实现网页中图片的批量下载和水印添加保存
使用Python实现网页中图片的批量下载和水印添加保存
|
11天前
|
数据采集 前端开发 数据安全/隐私保护
给picgo上传的图片加个水印
手把手教你们怎么给picgo中的图片加水印,防止图片被盗用
给picgo上传的图片加个水印
|
4月前
|
搜索推荐
通过图片搜索引擎自动下载图片
通过图片搜索引擎自动下载图片
31 0
|
11月前
|
编译器 C++
C++ 抓取和批量下载网站上的图片或文件
C++ 抓取和批量下载网站上的图片或文件
245 0
|
数据安全/隐私保护
图片一键添加水印工具V1.0-免费版
该图片一键添加水印工具V1.0可以批量把常见图片格式('.bmp', '.png', '.jpg', '.jpeg', '.dib', '.pbm', '.pgm', '.ppm', '.tif', '.tiff')一键添加水印。默认在图片右下角添加水印。
265 0
图片一键添加水印工具V1.0-免费版
|
计算机视觉
【方便的Opencv】实现图片合成视频+附带图片生成gif
【方便的Opencv】实现图片合成视频+附带图片生成gif
【方便的Opencv】实现图片合成视频+附带图片生成gif
|
JavaScript
原生js实现图片单张上传及批量上传
原生js实现图片单张上传及批量上传
|
数据安全/隐私保护 Windows
云图片批量下载教程
图片批量下载教程,亲测可用
2895 0
|
数据采集 Web App开发 Java
实现网络图片爬虫,只需5秒快速把整个网页上的图片全下载打包zip
我们经常需要用到互联网上的一些共享资源,图片就是资源的一种,怎么把网页上的图片批量下载下来?有时候我们需要把网页上的图片下载下来,但网页上图片那么多,怎么下载我们想要的东西呢,如果这个网页都是我们想要的图片,难道我们要一点一点一张一张右键下载吗? 当然不好,这里提供一段Java实现的网络爬虫抓图片代码,程序员同志有喜欢的记得收藏哦, 材料:必须会java开发,用到的核心jar Jsoup自己去网上下载很多。
1109 0