偶然发现https://wallhaven.cc/这个壁纸站的壁纸还不错,尤其是更新比较频繁,用python写个脚本爬取

点latest,按照更新先后排序,获得新地址,发现地址是分页展示的,每一页24张

本案例使用xpath爬虫爬取数据,先分析网页,使用浏览器查看元素工具,快速定位到图片元素所在位置,且存在规律性

首先爬取一级页面获取图片页面地址(点了上图箭头的地址会打开图片详细页,并非图片真实地址),xpath提取数据的代码如下

html = requests.get(url=url1, headers=headers, timeout=5.0).text
data = etree.HTML(html)
li_list = data.xpath('.//div[@id="thumbs"]//@href')

执行后爬取出一连串的地址信息

对里面包含“latest”的地址进行剔除,这个地址非图片地址,然后再循环请求图片地址,获取真实图片地址

        for li in li_list:
if 'latest' in li:
continue
else:
html_li = requests.get(url=li, headers=headers, timeout=5.0).text
data = etree.HTML(html_li)
li_add = data.xpath('//*[@id="wallpaper"]//@src')
li_add = li_add[0]
print(li_add)

执行后输出真实图片地址

把这些地址写到一个txt文本内,然后通过迅雷去下载,效率会高一些,当然也可以爬取后执行使用python下载,单线程下蛮久的。先上保存到txt内的全部代码

# -*- codeing = utf-8 -*-

import requests
from lxml import etree
import time
import random
import time def getBZ(): url='https://wallhaven.cc/latest?page={}' # 翻页10页
for page in range(1, 10): headers = {
# 'referer': 'https://wallhaven.cc/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36',
}
print(time.strftime("%H:%M:%S")) print("第{}页".format(page)) url1 = url.format(page)
print(url1)
# 一级页面请求
html = requests.get(url=url1, headers=headers).text
data = etree.HTML(html)
li_list = data.xpath('.//div[@id="thumbs"]//@href')
for li in li_list:
if 'latest' in li or 'top'in li:
continue
else:
print(li)
html_li = requests.get(url=li, headers=headers)
print(html_li.status_code)
if html_li.status_code == 404 or html_li.status_code == 429:#判断,如果响应失败跳过这次数据抓取
continue
else:
data = etree.HTML(html_li.text)
li_add = data.xpath('//*[@id="wallpaper"]//@src')
li_add = li_add[0]
with open('1538.txt', 'a',encoding='utf-8') as w:
w.write(li_add+'\n')
w.close()
b = random.randint(1,2)#随机从1到2内取一个整数值
print("等待"+str(b)+"秒")
time.sleep(b)#把随机取出的整数值传到等待函数中
getBZ()

使用python批量爬取wallhaven.cc壁纸站壁纸的更多相关文章

  1. 从0实现python批量爬取p站插画

    一.本文编写缘由 很久没有写过爬虫,已经忘得差不多了.以爬取p站图片为着手点,进行爬虫复习与实践. 欢迎学习Python的小伙伴可以加我扣群86七06七945,大家一起学习讨论 二.获取网页源码 爬取 ...

  2. python 批量爬取四级成绩单

    使用本文爬取成绩大致有几个步骤:1.提取表格(或其他格式文件——含有姓名,身份证等信息)中的数据,为进行准考证爬取做准备.2.下载准考证文件并提取出准考证和姓名信息.3.根据得到信息进行数据分析和存储 ...

  3. python批量爬取动漫免费看!!

    实现效果 运行环境 IDE VS2019 Python3.7 Chrome.ChromeDriver Chrome和ChromeDriver的版本需要相互对应 先上代码,代码非常简短,包含空行也才50 ...

  4. 用Python批量爬取优质ip代理

    前言 有时候爬的次数太多时ip容易被禁,所以需要ip代理的帮助.今天爬的思路是:到云代理获取大量ip代理,逐个检测,将超时不可用的代理排除,留下优质的ip代理. 一.爬虫分析 首先看看今天要爬取的网址 ...

  5. python 批量爬取代理ip

    import urllib.request import re import time import random def getResponse(url): req = urllib.request ...

  6. Python批量爬取谷歌原图,2021年最新可用版

    文章目录 前言 一.环境配置 1.安装selenium 2.使用正确的谷歌浏览器驱动 二.使用步骤 1.加载chromedriver.exe 2.设置是否开启可视化界面 3.输入关键词.下载图片数.图 ...

  7. python批量爬取文档

    最近项目需要将批量链接中的pdf文档爬下来处理,根据以下步骤完成了任务: 将批量下载链接copy到text中,每行1个链接: 再读txt文档构造url_list列表,利用readlines返回以行为单 ...

  8. python批量爬取猫咪图片

    不多说直接上代码 首先需要安装需要的库,安装命令如下 pip install BeautifulSoup pip install requests pip install urllib pip ins ...

  9. 使用Python批量爬取美女图片

    运行截图 实列代码: from bs4 import BeautifulSoup import requests,re,os headers = { 'User-Agent': 'Mozilla/5. ...

  10. from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)

    使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) - 北平吴彦祖 - 博客园 https://www.cnblogs.com/stevenshushu/p ...

随机推荐

  1. TCP的网络编程基础

    服务器建立 ServerSocket 对象ServerSocket 对象负责等待客户端请求建立套接字连接,类似邮局某个窗口中的业务员.也就是说, 服务器必须事先建立一个等待客户请求建立套接字的 连接 ...

  2. Codeforces Round 959 sponsored by NEAR (Div. 1 + Div. 2)

    题目链接:Codeforces Round 959 sponsored by NEAR (Div. 1 + Div. 2) 总结:Bwa两发,C读假题.发挥很一般,补题感觉到E都是能做的,红温. A. ...

  3. 创新突破!天翼云荣膺CCF HPC China 2024高性能计算创新大奖

    近日,第20届CCF全国高性能计算学术年会(CCF HPC China 2024)在武汉隆重召开.CCF HPC China是全球高性能计算领域三大标志性盛会之一,本届大会以"华章廿载 新质 ...

  4. 并发编程 - 线程同步(四)之原子操作Interlocked详解一

    上一章我们了解了原子操作Interlocked类的设计原理及简单介绍,今天我们将对Interlocked的使用进行详细讲解. 在此之前我们先学习一个概念--原子操作. 01.Read方法 该方法用于原 ...

  5. Hive表误删恢复

    一.简介 因hive表删除后,hdfs文件会先放入回收站,定期清理回收站.在回收之前可以进行清理数据 二.恢复步骤 2.1 看表存储是否损坏select type from dw.ods_test1 ...

  6. 自适应 Simpson 积分法学习笔记

    自适应 Simpson 积分法,是一种计算一段区间内,形态奇怪的函数和的算法,例如面积并和难以直接用通项公式计算的函数. Simpson 积分 我们都知道,求解微积分需要求解一个导数的原函数,但这显然 ...

  7. SpringBoot - [04] 自动装配原理

    题记部分   Spring Boot的自动装配(Auto-Configuration)原理是其简化Spring应用开发的关键特性之一,它能自动配置Spring框架及第三方库,极大地减少了手动配置的工作 ...

  8. 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性

    学习编程之初就常被告诫:"永远不要相信用户的输入",但实际编码中,可能因为各种原因而忽略这点,本文尝试以 SQL 注入的角度探寻校验输入的重要性 以下实验均以 SQLI labs ...

  9. 青岛oj集训1

    2025/3/4 内容:有向无环图(DAG) 优点:DAG有很多良好性质 拓扑排序 用处:可以根据拓扑序进行dp 这次计算所用的所有边的权值都是有计算过的 一张DAG图肯定有拓扑序(bfs序,dfs序 ...

  10. c# 使用 Read 读取数据块

    class Program { static void Main(string[] args) { Stream s = new MemoryStream(); for (int i = 0; i & ...