上次只是爬取一个专辑的图片,这次要爬取一整个页面的所有专辑的图片。

在上次的代码的基础上进行修改就行了,从专辑的索引页面开始,爬取该页面上所有的专辑的链接,再套用上次的代码就行了。

若要爬取多个页面只需在外围套上一个循环就可以了。

代码如下:

  1. import requests
  2. import re
  3. from bs4 import BeautifulSoup
  4. import os
  5.  
  6. #爬取的网站:http://www.win4000.com/wallpaper_detail_54520.html
  7.  
  8. def Get_image_url(url):
  9. #传入页面的URL,得到所有图片所在的标签和图册的名字,并返回
  10.  
  11. Res = requests.get(url)
  12. Soup = BeautifulSoup(Res.text,'lxml')
  13.  
  14. Name = Soup.select('h1')[0].string
  15. Tag = 'img[title=\"' + Name + '\"]'
  16. Image = Soup.select(Tag)
  17.  
  18. return Image,Name
  19.  
  20. def Download_Image(Image_url):
  21. #传入图片的URL,将图片保存在本地
  22. Image = requests.get(Image_url,stream=True)
  23. #将链接的最后一个字符串最为图片的名字
  24. name = Image_url.split('/')[-1]
  25. #白村图片
  26. with open(name,'wb') as f:
  27. f.write(Image.content)
  28.  
  29. def Get_index_image(Url):
  30. Res = requests.get(Url)
  31. Reg = r'<a href="(.+?)" title=.+? target='
  32. Reg = re.compile(Reg)
  33. Image = re.findall(Reg,Res.text)
  34. Image = set(Image)
  35. Image = [i for i in Image if len(i) > 49]
  36. return Image
  37.  
  38. def main(url):
  39. #主调函数
  40. #url = "http://www.win4000.com/wallpaper_detail_54520.html"
  41. [Image,Name] = Get_image_url(url)
  42. #print(Name,Image)
  43. #保存当前目录
  44. path = os.getcwd()
  45. #创建保存图片的目录
  46. if (not os.path.exists(Name)):
  47. os.mkdir(Name)
  48. os.chdir(path + '/' + Name)
  49. for I in Image:
  50. Download_Image(I['src'])
  51. #返回之前的目录
  52. os.chdir(path)
  53. print(Name+'\n')
  54. else:
  55. print(Name + " 已经下载过了")
  56.  
  57. if __name__ == '__main__':
  58. Main_Url = "http://www.win4000.com/wallpaper_192_0_0_1.html"
  59. Url = Get_index_image(Main_Url)
  60. for u in Url:
  61. main(u)
  62. print("下载完成!")

python3爬取高清壁纸(2)的更多相关文章

  1. python3爬取高清壁纸(1)

    这次爬取的目标是:美桌网首页 > 桌面壁纸 > 卡通动漫 类别下的壁纸. 我们先随机选取一个专辑来爬(http://www.win4000.com/wallpaper_detail_545 ...

  2. Python 爬取高清桌面壁纸

    今天写了一个脚本用来爬取ZOL桌面壁纸网站的高清图片: 链接:http://desk.zol.com.cn/1920x1080/ 本程序只爬了美女板块的图片,若要下载其他板块,只需修改程序中的&quo ...

  3. python 爬取王者荣耀高清壁纸

    代码地址如下:http://www.demodashi.com/demo/13104.html 一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 ...

  4. 别人用钱,而我用python爬虫爬取了一年的4K高清壁纸

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取htt ...

  5. Nginx+uWSGI+Python+Django构建必应高清壁纸站

    写在前面 做这个网站的初衷是因为,每次打开必应搜索搜东西的时候都会被上面的背景图片吸引,我想必应的壁纸应该是经过专业人员精选出来的,我甚至会翻看以前的历史图片,唯一美中不足的是必应的首页只能查看最多7 ...

  6. python3爬取网页

    爬虫 python3爬取网页资源方式(1.最简单: import'http://www.baidu.com/'print2.通过request import'http://www.baidu.com' ...

  7. python3爬取女神图片,破解盗链问题

    title: python3爬取女神图片,破解盗链问题 date: 2018-04-22 08:26:00 tags: [python3,美女,图片抓取,爬虫, 盗链] comments: true ...

  8. Python3 爬取微信好友基本信息,并进行数据清洗

    Python3 爬取微信好友基本信息,并进行数据清洗 1,登录获取好友基础信息: 好友的获取方法为get_friends,将会返回完整的好友列表. 其中每个好友为一个字典 列表的第一项为本人的账号信息 ...

  9. android 高清壁纸设置慢

    由于项目的需要最近在解决一个 bug  在1080p 的手机上面设置壁纸会很慢慢,慢的原因是和壁纸 的大小 有关,壁纸越大,时间直越长,一般1080 p 的壁纸大概有10M左右, 所以通过文件流 来保 ...

随机推荐

  1. laravel orWhere

    场景描述 需要根据商品分类.商品名称和条形码这三个查询条件去取出结果集,这三者的关系是:商品分类 and (商品名称 or 条形码) 错误尝试 第一次写出来的代码是这样的: $goodsModel = ...

  2. Java使用POI读取Word中的表格

    个人博客 地址:https://www.wenhaofan.com/a/20190627135921 代码 package live.autu.word; import java.io.FileInp ...

  3. python中的__dict__和dir()的区别

    Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案. __dict__与dir()的区别: dir()是一个函数,返回的是list: __di ...

  4. ansible-yaml语法

    1. 基础语法 - yaml结果通过空格来展示 - 数组使用"- "来表示 //注意:-后边要有一个空格 - 键值对使用": "来表示 //注意::后边要有一个 ...

  5. LeetCode 572. 另一个树的子树

    题目链接:https://leetcode-cn.com/problems/subtree-of-another-tree/ 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和 ...

  6. H5-设置缓存

    <meta http-equiv="Cache-Control"content="no-cache"/> 手机页面通常在第一次加载后会进行缓存,然后 ...

  7. 7-5 A除以B(10 分)

    真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果. 输入格式:输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔. 输出格 ...

  8. StarUML 2下载、安装、破解全过程

      StarUML官方下载地址:  http://staruml.io/download 破解: ​  1.使用Editplus或者Notepad++等特殊的文本编辑器打开 安装位置下/www/lic ...

  9. 3、手写Unity容器--第N层依赖注入

    这个场景跟<手写Unity容器--第一层依赖注入>又不同,这里构造AndroidPhone的时候,AndroidPhone依赖于1个IPad,且依赖于1个IHeadPhone,而HeadP ...

  10. ubuntu安装配置heirloom-mailx使用外部smtp发送外网email

    1- 安装 1.1- 添加heirloom-mailx apt源 cat /etc/apt/sources.list.d/mailx.list deb http://cz.archive.ubuntu ...