德玛西亚万岁 发表于 2023-2-1 09:02

Python爬取wallhaven壁纸

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

学习中,未加多线程,由于网站、图片大小等因素导致下载缓慢
望各位大神提出建议并加以修善
网站主页及其爬取页如下,可自行修改代码中的url变量已及爬取页数


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/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) #本页图片获取

175079090@qq.co 发表于 2023-2-1 09:02

感谢楼主分享

hjh298418 发表于 2023-2-1 09:08

先收藏了,万一用到呢

伊蒂叶丶布 发表于 2023-2-1 09:09

谢谢大佬

askirashic 发表于 2023-2-1 09:23


感谢楼主的分享

C0c0c0 发表于 2023-2-1 09:25

6666666666

淡若清风 发表于 2023-2-1 09:28

谢谢分享!

cao_ad 发表于 2023-2-1 09:52

谢谢大佬分享

hhj2006 发表于 2023-2-1 10:13

谢谢@Thanks!
页: [1]
查看完整版本: Python爬取wallhaven壁纸