学习了爬虫之后就迫不及待自己写了个爬虫,作用是爬取彼岸图1080p壁纸。因为是刚入门代码可能会比较乱,而且我中途遇到的一些问题都是通过最简单的方式去解决的,所以代码行数也比较多,望见谅。

下载部分如下

from urllib.request import urlretrieve
from bs4 import BeautifulSoup
import os
import requests
from urllib.error import HTTPError
from urllib.error import URLError
url="http://www.netbian.com/"
tempList=[]#避开URL错误
def get_page_(imageLink,fileName):try:urlretrieve(imageLink, filename=fileName)except URLError as e:return None
#解析网页
def openhtml(label,attrs,end,url,sortUrl,urlList,):html = url + sortUrl + endpage = requests.get(html)bso = BeautifulSoup(page.content, "html.parser")#找到要获取的标签for item in bso.findAll(label):if attrs in item.attrs:urlList.append(item.attrs[attrs])
#获取图片链接,并创建文件夹
def downimage(imageUrl,imageName,filepath):try:for index in range(0, len(imageUrl)):#去掉图片链接中.htm方便自定义链接imageUrl[index] = imageUrl[index].replace(".htm", "")#获取图片名称openhtml("img", "title", f"{imageUrl[index]}.htm", url=url, sortUrl="", urlList=imageName)#拼接链接image = requests.get(url + imageUrl[index] + "-1920x1080.htm")#解析图片链接获取.JPG链接page = BeautifulSoup(image.content, "html.parser")imageLink=(page.find("td").find("img").get("src"))#拼接下载时保存的文件名fileName="{}{}{}".format(filepath,imageName[index],".jpg")#下载到本地get_page_(imageLink=imageLink, fileName=fileName)print(imageName[index])except:print("图片异常,爬取失败")
#主体函数,整体流程在这
def wallpaperDown(sortname,sorturl,page,type):#新建保存到本地的文件夹filepath = f"E:\\1080p壁纸\\{sortname}\\"if not os.path.exists(filepath):os.makedirs(filepath)urlList=[]#打开壁纸分类地址openhtml("a","href",".htm",urlList=urlList,url=url,sortUrl=sorturl)#筛选出需要网页的连接urlList=[list for list in urlList if list is not None and f"{sorturl}" in list ]linkLength=len(sorturl)#获取网站页数用于循环if urlList==[]:end=""else:end = urlList[-2][2+linkLength:-4]#循环N页,获取下载链接for i in range(page,int(end)+1):# 下载第一页,上面的循环只能从第二页开始下载。if i>=int(end):print("正在下载第1页")homeImageUrl = []homeImageName = []#打开第一页openhtml("a", "href", ".htm", url=url, sortUrl=sorturl, urlList=homeImageUrl)#筛选出图片链接homeImageUrl=[list for list in homeImageUrl if list is not None and "/desk/" in list]#下载图片downimage(imageUrl=homeImageUrl, imageName=homeImageName, filepath=filepath)#判断下载类型,单类别下载则下载完尾页之后结束,多类别则继续下载其他类别if i >= int(end):if type==0:print(f"正在下载第{i}页",i,end)print(f"{sortname}壁纸已下载完毕")exit()else:print(f"正在下载第{i}页")imageUrl = []imageName = []# 找到包含下载链接的标签,并获取内容openhtml("a", "href", f"_{i}.htm", url=url, sortUrl=sorturl, urlList=imageUrl)# 筛选出需要的图片链接imageUrl = [list for list in imageUrl if list is not None and "/desk/" in list]# 下载图片downimage(imageUrl=imageUrl, imageName=imageName, filepath=filepath)

交互如下

import pic_1080p
import sys
#分类名称列表
sortlist=['动漫','游戏','日历', '风景', '美女', '影视', '唯美', '设计', '可爱', '汽车', '花卉','动物', '节日', '人物', '美食', '水果', '建筑', '体育', '军事', '非主流', '其他',"王者荣耀","护眼","LOL"]
print(len(sortlist))
#子链接列表,对应分类列表
childlist=['dongman/index','youxi/index','rili/index', 'fengjing/index','meinv/index',  'yingshi/index', 'weimei/index', 'sheji/index','keai/index', 'qiche/index', 'huahui/index','dongwu/index', 'jieri/index', 'renwu/index', 'meishi/index', 'shuiguo/index','jianzhu/index', 'tiyu/index', 'junshi/index', 'feizhuliu/index', 'qita/index',"s/wangzherongyao/index","s/huyan/index","s/lol/index"]
#选择具体分类
def get(No,Type):childLink = childlist[No]pic_1080p.wallpaperDown(sortlist[No], childLink, page,Type)#输出所有分类
for i in range(0,len(sortlist)):print(f"选择《{sortlist[i]}》请输入【{i}】")#输入选择的分类和起始页
sort=int(input("请输入数字选择要下载分类,输入【10086】将下载所有:"))
if sort == 10086:sort_=int(input("请输入将从那个分类开始依次下载:"))
page=int(input("请输入起始下载页:"))
#判断输入内容
for i in range(0, len(sortlist)):for item in sortlist:# 下载所有分类图片if sort == 10086:for j in range(sort_, len(sortlist)):folderName = sortlist[j]childLink = childlist[j]get(j,1)# 下载选中的分类elif sort >= 0 and sort <= 24:get(sort,0)else:print("请按提示输入!")sys.exit()

我测试下载了7G没出现什么问题

Python爬虫 下载彼岸图网高清壁纸相关推荐

  1. 【python--爬虫】彼岸图网高清壁纸

    爬取的网站是彼岸图网 先打开彼岸图网. 点击[尺寸],然后选择[4K壁纸],就可以打开这个页面 发现一个规律,第n页的url就是 http://pic.netbian.com/e/search/res ...

  2. python爬虫爬取必应每日高清壁纸

    python爬虫爬取必应每日高清壁纸 一.简介 二.使用的环境 三.网页分析 1.分析网页每一页url形式以及总页数 2.网页重要信息收集 3.在源码中寻找所需信息的位置 四.代码实现 五.运行爬虫 ...

  3. Python爬虫:彼岸图网图片爬取

    杂 哈哈,这是我第一篇博客 半年以后回来再看发现这代码简直太难看了 现在已经弃用大小驼峰转蛇形命名了 确实好看 除了命名别的也写的不怎么样 因为爬虫只是个爱好所以也不准备再投入时间重构了 将就着看吧 ...

  4. 用Python爬取彼岸图网图片

     用Python爬取彼岸图网图片 *使用了  四个模块 import time import requests from lxml import etree import os 没有的话自行百度安装. ...

  5. Xpath-彼岸图网高清图片获取

    Xpath-彼岸图网高清图片获取 目标网站:彼岸图网 首先导入所需包 import os import timeimport requests from lxml import etree 做好伪装( ...

  6. 多线程爬虫实战--彼岸图网壁纸爬取

    多线程爬虫实战–彼岸图网壁纸爬取 普通方法爬取 import requests from lxml import etree import os from urllib import requesth ...

  7. python手机壁纸超清_详解Python静态网页爬取获取高清壁纸

    前言 在设计爬虫项目的时候,首先要在脑内明确人工浏览页面获得图片时的步骤 一般地,我们去网上批量打开壁纸的时候一般操作如下: 1.打开壁纸网页 2.单击壁纸图(打开指定壁纸的页面) 3.选择分辨率(我 ...

  8. 【python--爬虫】千图网高清背景图片爬虫

    最近有读者反映想要下载千图网的高清背景图片,但是需要会员才能下载,而且需要的量非常大,问博主有没有办法能免费下载这些图片. 付费,不存在的o( ̄▽ ̄)o!,博主今天讲解如何通过python爬取千图网的 ...

  9. python爬虫之-斗图网爬取

     python爬虫之-斗图啦爬取 利用:requests, re 功能:用户自定义关键词,页码 整体代码 # 请求库 import requests # 正则 import re # 让用户输入 im ...

最新文章

  1. 一文掌握明年物联网传感器市场!2022中国AIoT产业全景图谱报告新鲜出炉
  2. Windows 程序员必备的知识和工具
  3. 1-1 什么是微信小程序
  4. 转,jquery中attr和prop的区别
  5. 提高性能:流的非阻塞处理
  6. wordpress 基础文件
  7. HDOJ 1010 HDU 1010 Tempter of the Bone ACM 1010 IN HDU
  8. 利用光学流跟踪关键点---30
  9. CentOS 开机自启动配置方法
  10. 线上CPU100%?看看这篇是怎么排查的!
  11. C++编程基础一 28-编程练习一
  12. 命主属性是水什么意思_跟水有关的字女孩名字寓意她们柔美水灵-可爱点
  13. win10官方原版镜像系统
  14. 博客Typecho插件,Typecho采集发布插件大全
  15. 固定效应还是随机效应?
  16. python导入mysqldb_Python导入MySQLdb
  17. 自控力如何改善了我的生活
  18. 自动化运维之架构设计六要点
  19. mysql error unpacking_error: unpacking of archive failed on file错误的解决
  20. Rewrite和RewriteRule规则,http强转https的配置总结

热门文章

  1. Python 通过 STMP 发送邮件(云服务器可用)
  2. 一个简单的爬虫——收集安居客上海租房信息
  3. 【css】LCD液晶字体——自定义字体@font-face
  4. 关于Win7系统不能删除avast!
  5. 在AWS上部署一个网站
  6. 用cmd批量修改文件名
  7. 爬取中国工程院院士的信息
  8. Spark SQL概述及其基本用法
  9. 斐讯Fir302b救砖教程
  10. GitHub腾讯T14级SQL首席专家开源分布式数据库架构实践手册