1. 采集网站:

壁纸360

采集内容:

壁纸360全网超高清壁纸

2.采集思路:

网页导航栏一共有16个分类,第一个分类包含了后面所有的,为了将图片按类型存储,所以就只采集了后面15个标签。

那么首先采集下分类标签及其名称(最基本的采集,不用多说啥了,直接一步到位)

接下来就是查找图片链接,查看列表页中每张图片

从上面链接中我们可以看到图片是被缩放成 208x130像素的,那么如何抓到原像素图片?
点击图片到图片详情页,此时发现图片像素高一点了,可以达到800x580

还是不能达到想要的像素?
仔细观察该页面的按钮,还有个点击下载壁纸大图,如下图

点击后检查网络请求,可以看到已经将最高清图片请求过来了

最后根据需要采集不同清晰度的图片接口
最低像素采集列表页链接,格式: http://www.bizhi360.com/allimg/litimg/6730_1.jpg
普通像素采集详情页链接, 格式:http://www.bizhi360.com/allimg/bpic/30/6730.jpg
高清像素采集点击下载壁纸获取到的连接,格式: http://pic.bizhi360.com/bbpic/30/6730.jpg

多次观察,发现路由是有规律的,照着处理就行,已高清为例
在列表页中,我们能抓到 /allimg/litimg/6730_1.jpg

高清图片的链接是: http://pic.bizhi360.com/bbpic/30/6730.jpg
http://pic.bizhi360.com/bbpic/ + 链接中整数(6730后两位) + 链接中整数部分(6730)  + ".jpg"

realImgUrl = sourceUrl2 + url1[0][-2:] + "/" +url1[0] + ".jpg"

最后一个的话可能就是翻页问题了,观察一下倒数第二页和最后一页的网页结构

所以采集页数和终止条件如下:

3.整体代码:

采集最高清的图片,本人采集用了代理,我不确定不用代理采集会不会封IP,建议带上IP代理。以下是去除代理厚后的整体代码:

# -*- coding: UTF-8 -*-
'''
@Author :Jason
@Desc   :http://www.bizhi360.com/
360壁纸采集
网站壁纸一共15个类
'''
import requests
from lxml import etree
import os
import re
import timedef getImageTypeAndName():'''主要抓取壁纸分类链接 和 壁纸分类名称:返回壁纸分类连接 壁纸分类名称'''url = "http://www.bizhi360.com"headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36",}res = requests.get(url=url,headers = headers)res.encoding = "gbk"etreeHtml = etree.HTML(res.text)imageType = etreeHtml.xpath('//div[@id="tagnav"]//div[@class="container"]/a/@href')imageTypeName = etreeHtml.xpath('//div[@id="tagnav"]//div[@class="container"]/a/text()')return imageType[1:],imageTypeName[1:] #去掉/desk/ 和 壁纸图片大全 这一分类,包含所有图片def downloadImage():'''直接采集图片,根据图片分类保存到指定文件夹:return:None'''headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36",}sourceUrl1 = "http://www.bizhi360.com"sourceUrl2 = "http://pic.bizhi360.com/bbpic/"imageType, imageTypeName  = getImageTypeAndName()for i,url in enumerate(imageType):if os.path.exists(imageTypeName[i]): #文件夹存在,不操作passelse:#文件夹不存在,创建文件夹os.mkdir(imageTypeName[i])print("创建文件夹")for page in range(1,1000): #先假设每个分类有1000页,后期增加判断条件可提前结束listUrl = sourceUrl1 + url  + "list_" + str(page) + ".html"print(listUrl)res = requests.get(listUrl, headers = headers)res.encoding = "gbk"etreeHtml = etree.HTML(res.text)imageUrlList = etreeHtml.xpath('//*[@id="main"]/div/div[1]/ul/li/a/img/@src')for imageUrl in imageUrlList:url1 = re.findall(r'/(\d+).*?\.jpg',imageUrl)realImgUrl = sourceUrl2 + url1[0][-2:] + "/" +url1[0] + ".jpg"print(realImgUrl)resImg = requests.get(url=realImgUrl,headers=headers)with open("./"+imageTypeName[i] +"/"+ url1[0] + ".jpg","wb") as f:f.write(resImg.content)print("壁纸", url1[0] + ".jpg","保存完毕")if "<span>下一页</span>" in res.text:#判断抓取终止条件,存在那么就停止抓取breakif __name__ == "__main__":# getImageTypeAndName()downloadImage()print("  ")

4.最终采集效果:

5.说明:

没有用线程进程一是因为代理问题,二是本身不急,写完代码后直接扔服务器让他自己抓取去了。有需求的可以完善代码,加快抓取速度。异常这块也没有搞(#自信qaq)

全网采集壁纸360网站全网壁纸相关推荐

  1. ZHEYI自动采集壁纸系统网站源码 360壁纸官方数据接口采集

    源码介绍 ZHEYI自动采集壁纸是一个基于360壁纸官方数据接口的PHP网站源码,通过使用这个源码,您可以快速构建一个壁纸分享网站. 环境要求 该源码具有简单易用.高效稳定的特点,并适用于PHP版本5 ...

  2. python爬虫:使用scrapy框架抓取360超清壁纸(10W+超清壁纸等你来爬)

    目的:闲着无聊,利用爬虫爬取360超清壁纸,并将其数据存储至MongoDB/MySQL中,将图片下载至指定文件夹. 要求:确保以安装MongoDB或者MySQL数据库.scrapy框架也肯定必须有的: ...

  3. php文件怎么做壁纸,自动调取在线壁纸作为网站背景(PHP接口源码)+赠送三个壁纸接口...

    [PHP] 纯文本查看 复制代码<?php /* 功能:自动调取壁纸作为网站背景 开发时间:2017年7月4日 应用案例:https://www.68xi.cn/search/ 分享三个在线壁纸 ...

  4. 全网采集工具(msray)-百度搜索引擎关键词全网采集

    全网采集工具(msray)-百度搜索引擎进行全网采集 Msray-plus,是一款采用GO语言开发的企业级综合性爬虫/采集软件. 支持:搜索引擎结果采集.域名采集.URL采集.网址采集.全网域名采集. ...

  5. 关于java爬虫手机壁纸图片网站

    最近爬了一些壁纸网站的壁纸,这里总结下如何用Jsoup去爬图片. 首先获取图片网站的地址,用F12看下网站里面的图片是放在哪个地方的. 通过f12就可以看到图片是放在div的标签下面的, 然后获取图片 ...

  6. 基于Jsoup的Java爬虫-爬取必应壁纸网站的壁纸(Java静态壁纸爬虫实例)

    准备阶段 1.必应壁纸网站:https://bing.ioliu.cn(爬取对象网站) 2.Jsoup包下载地址:https://jsoup.org/download(以下代码需要用到该包,记得导入包 ...

  7. 最佳下载酷壁纸的网站

    Getting bored with your desktop wallpaper or the wallpaper on your mobile device? Because we use our ...

  8. 宝藏又小众的动漫壁纸素材网站分享

    因为工作的原因,我会经常使用到素材网站,各个平台的模式不太一样,内容也各有特点.刚开始接触素材网站都是一头雾水,走了很多弯路,一些很简单的操作都花去很长的操作时间.....今天给大家安利动漫壁纸素材网 ...

  9. 获取windows当前桌面背景图 - 来自360浏览器的壁纸

    本文仅限于获取 来自360浏览器的壁纸的windows系统. 步骤 打开计算机,进入"C:\Users\Administrator\AppData\Roaming\360browser\bk ...

最新文章

  1. 【web安全】Xss Exploits and Defense翻译4
  2. draw.io创建自定义形状
  3. vc通过COM方式调用CertEnroll
  4. httpRuntime 一点经验---引
  5. ArcGIS 10.2数字化线状要素时自动拼接成一条线
  6. discuz安装_手动搭建 Discuz! 论坛
  7. 关于MySQL存储过程异常处理的一点心得
  8. .net winform panel 不刷新_winform项目——仿QQ即时通讯程序04:登录界面补充
  9. Spring Boot 文件上传功能实现与简单示例
  10. ios 模拟器添加经纬度_iOS 微信双开来了,但我不建议你使用
  11. (十五)洞悉linux下的Netfilteriptables:开发自己的hook函数【实战】
  12. 无限弹窗(python)
  13. Eviews10.0下载与安装
  14. STM32官方USB库下载指南
  15. 双目相机:基于双目视觉的目标测距
  16. 华为Eudumon1000配置PORTAL认证
  17. azkaban build报错
  18. 本田智能驾驶功能介绍-TSR/CTM/MVC360
  19. §1.1自然数 上•序数理论
  20. android+源代码加密,震惊!Android 12开发者版源代码泄密

热门文章

  1. 软件协作工具Trello
  2. Bmob的使用-上传图片
  3. 计算机服务器数量指的是什么意思,pc服务器是指什么意思
  4. 但愿呼我的名为旅人:松尾芭蕉俳句300读后感
  5. android的spinner
  6. 首届玄铁RISC-V生态大会上海举办,阿里平头哥首次展示RISC-V生态全景
  7. no protocal specified
  8. linux静态网页搭建
  9. MiniDao (轻量级JAVA持久层,Hibernate完美助手)
  10. 微信公众号留言功能如何开启?