python3爬取高清壁纸(2)
上次只是爬取一个专辑的图片,这次要爬取一整个页面的所有专辑的图片。
在上次的代码的基础上进行修改就行了,从专辑的索引页面开始,爬取该页面上所有的专辑的链接,再套用上次的代码就行了。
若要爬取多个页面只需在外围套上一个循环就可以了。
代码如下:
import requests
import re
from bs4 import BeautifulSoup
import os #爬取的网站:http://www.win4000.com/wallpaper_detail_54520.html def Get_image_url(url):
#传入页面的URL,得到所有图片所在的标签和图册的名字,并返回 Res = requests.get(url)
Soup = BeautifulSoup(Res.text,'lxml') Name = Soup.select('h1')[0].string
Tag = 'img[title=\"' + Name + '\"]'
Image = Soup.select(Tag) return Image,Name def Download_Image(Image_url):
#传入图片的URL,将图片保存在本地
Image = requests.get(Image_url,stream=True)
#将链接的最后一个字符串最为图片的名字
name = Image_url.split('/')[-1]
#白村图片
with open(name,'wb') as f:
f.write(Image.content) def Get_index_image(Url):
Res = requests.get(Url)
Reg = r'<a href="(.+?)" title=.+? target='
Reg = re.compile(Reg)
Image = re.findall(Reg,Res.text)
Image = set(Image)
Image = [i for i in Image if len(i) > 49]
return Image def main(url):
#主调函数
#url = "http://www.win4000.com/wallpaper_detail_54520.html"
[Image,Name] = Get_image_url(url)
#print(Name,Image)
#保存当前目录
path = os.getcwd()
#创建保存图片的目录
if (not os.path.exists(Name)):
os.mkdir(Name)
os.chdir(path + '/' + Name)
for I in Image:
Download_Image(I['src'])
#返回之前的目录
os.chdir(path)
print(Name+'\n')
else:
print(Name + " 已经下载过了") if __name__ == '__main__':
Main_Url = "http://www.win4000.com/wallpaper_192_0_0_1.html"
Url = Get_index_image(Main_Url)
for u in Url:
main(u)
print("下载完成!")
python3爬取高清壁纸(2)的更多相关文章
- python3爬取高清壁纸(1)
这次爬取的目标是:美桌网首页 > 桌面壁纸 > 卡通动漫 类别下的壁纸. 我们先随机选取一个专辑来爬(http://www.win4000.com/wallpaper_detail_545 ...
- Python 爬取高清桌面壁纸
今天写了一个脚本用来爬取ZOL桌面壁纸网站的高清图片: 链接:http://desk.zol.com.cn/1920x1080/ 本程序只爬了美女板块的图片,若要下载其他板块,只需修改程序中的&quo ...
- python 爬取王者荣耀高清壁纸
代码地址如下:http://www.demodashi.com/demo/13104.html 一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 ...
- 别人用钱,而我用python爬虫爬取了一年的4K高清壁纸
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取htt ...
- Nginx+uWSGI+Python+Django构建必应高清壁纸站
写在前面 做这个网站的初衷是因为,每次打开必应搜索搜东西的时候都会被上面的背景图片吸引,我想必应的壁纸应该是经过专业人员精选出来的,我甚至会翻看以前的历史图片,唯一美中不足的是必应的首页只能查看最多7 ...
- python3爬取网页
爬虫 python3爬取网页资源方式(1.最简单: import'http://www.baidu.com/'print2.通过request import'http://www.baidu.com' ...
- python3爬取女神图片,破解盗链问题
title: python3爬取女神图片,破解盗链问题 date: 2018-04-22 08:26:00 tags: [python3,美女,图片抓取,爬虫, 盗链] comments: true ...
- Python3 爬取微信好友基本信息,并进行数据清洗
Python3 爬取微信好友基本信息,并进行数据清洗 1,登录获取好友基础信息: 好友的获取方法为get_friends,将会返回完整的好友列表. 其中每个好友为一个字典 列表的第一项为本人的账号信息 ...
- android 高清壁纸设置慢
由于项目的需要最近在解决一个 bug 在1080p 的手机上面设置壁纸会很慢慢,慢的原因是和壁纸 的大小 有关,壁纸越大,时间直越长,一般1080 p 的壁纸大概有10M左右, 所以通过文件流 来保 ...
随机推荐
- .net core 简单定时程序
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Orleans; using S ...
- vue动画&过渡整理
- html无卡顿动画实现——requestAnimationFrame
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- 获取redis实例中最大的top-N key
需求:获取redis实例中最大的top-N key 说明:由于redis 4.x才引入了memory usage keyname的语法.3.x不支持! db_ip=5.5.5.101 db_port= ...
- easyui-numberbox后台获取数据后,鼠标一点击就自动清空了
<input type="text" name="txtMeterInitData" id="txtMeterInitData" cl ...
- 《深入理解java虚拟机》读书笔记四——第五章
第五章 调优案例分析与实战
- 多模块打war包
1.在启动类的那个模块中的pom.xml中加入<packaging>war</packaging> 就这句 <groupId>com.mybatis</gr ...
- 转载:polyphase filter
http://www.ws.binghamton.edu/fowler/fowler%20personal%20page/ee521.htm http://www.ws.binghamton.edu/ ...
- [SDOI2008] 校门外的区间 - 线段树
U T 即将区间 \(T\) 范围赋值为 \(1\) I T 即将区间 \(U - T\) 范围赋值为 \(0\) D T 即将区间 \(T\) 赋值为 \(0\) C T 由于 \(S=T-S=T( ...
- 【Linux】iptables相关实践,原理及参数解释
1.禁止指定IP地址的主机进行连接 iptables -I INPUT -s .***.***. -j DROP 2.解除禁止指定IP地址的主机进行连接 iptables -D INPUT -s .* ...