找回密码
  注册[Register]
查看: 265|回复: 8

[python] Python爬取wallhaven壁纸

[复制链接]
发表于 2023-2-1 09:02 来自手机 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

本帖最后由 德玛西亚万岁 于 2023-2-1 09:08 编辑

学习中,未加多线程,由于网站、图片大小等因素导致下载缓慢
望各位大神提出建议并加以修善
网站主页及其爬取页如下,可自行修改代码中的url变量已及爬取页数 B359F4CF-743F-4389-A796-9E0A872DF437.png 8AEB8333-1344-4A88-9F99-C93B4DAB30E4.png


[Python] 纯文本查看 复制代码
import requests
from lxml import etree
 
for x in range(2,5): #爬取页数
    n=0 #name initialize of picture
    url = f"https://wallhaven.cc/toplist?page={x}"
 
    headers1 = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
        }
    response = requests.get(url=url,headers=headers1)
    #print(response.text)
    tree = etree.HTML(response.text)
    list = tree.xpath('//*[@id="thumbs"]/section[1]/ul/li/figure/a/@href')
    response.close()
    def repage(url1,n):
        response1 = requests.get(url = url1,headers=headers1)
        tree1 = etree.HTML(response1.text)
        src_url = tree1.xpath('//*[@id="wallpaper"]/@src')
        for j in src_url:
            response_img = requests.get(j)
        print(response_img)
        with open('img//'+'wallhaven//'+str(n)+'.jpg', mode="wb") as f:
            f.write(response_img.content) #二进制存入图片
        print("Done!")
        response_img.close()
        response1.close()
 
    for i in list:
        n=n+1
        repage(i,n) #本页图片获取

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2023-2-1 09:02 | 显示全部楼层
感谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2023-2-1 09:08 | 显示全部楼层
先收藏了,万一用到呢
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2023-2-1 09:09 | 显示全部楼层
谢谢大佬
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2023-2-1 09:23 | 显示全部楼层

感谢楼主的分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2023-2-1 09:25 | 显示全部楼层
6666666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2023-2-1 09:28 | 显示全部楼层
谢谢分享!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2023-2-1 09:52 | 显示全部楼层
谢谢大佬分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2023-2-1 10:13 | 显示全部楼层
谢谢@Thanks!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|大牛论坛 |我的广告

GMT+8, 2024-5-8 04:08 , Processed in 0.041691 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表