资讯详情

爬取热榜2k图片,爬虫入门即可

一、作品预览

在这里插入图片描述

二、图片示例

三:知己知彼(分析网页并保存在本地)

1.我们的目标网站是一个非常好的2k图片网站:https://wallhaven.cc/

2.我们的目标是它的热图:## 3.点击其中一张图片,发现它会跳转到其详细信息页面。详细信息页面的地址如下:

详情页如下及2k图片源地址如下:

4.知道如何获得一张图片,看看如何获得所有的图片。右键单击查看开发人员工具,发现每个页面都是一个section。section下有很多li每个图片详情页面的地址都存储在标签中。

5.点击小倒三角,收缩代码块,右键copy将代码复制到本地。

5.新建记事本,粘贴代码,将后缀名改为.html。

四、代码实操

1.导入相关库

import requests from lxml import etree import os 

2.为存储图片的详细页面创建新列表

img_url_list=[]##存储图片详情页的地址 

3.用lxml里的etree本地对象实例化

tree=etree.parse('./1.html',etree.HTMLParser())图片最后一次更新时间2022.03.25/wallhaven/toplist 

4.获取页面列表

pag_list=tree.xpath('//*[@id="thumbs"]/section')#xpath定位到页面标签section,获取到section组成的列表

5.查看复制的页面总数

print(len(page_list))#section的个数,即刚才复制的页面的数量,显示60,说明共60页

6.定义count,记录已经下载的图片数量

count=1

7.分别对每一页的每张图片的详情页地址请求,获取详情页的代码,xpath提取图片真实url,并保存。(re正则表达提取也很简单,好兄弟们可以试试哦。)

for page in range(1,3):
    li_list=page_list[page].xpath('./ul/li')
    for li in li_list:
        #分别对图片详情页请求之后实例化对象并且提取图片源地址
        tree=etree.HTML(requests.get(url=li.xpath('./figure/a/@href')[0],headers=headers).text)
        img_url=tree.xpath('//*[@id="wallpaper"]/@src')
        #如果爬取到图片源地址
        if img_url:
            img_url=img_url[0]
            img_url_list.append(tree.xpath('//*[@id="wallpaper"]/@src')[0])
            #对源地址请求获取图片二进制形式
            file=requests.get(img_url).content
            file_name=img_url.split('-')[-1]
            #文件夹不存在则新建
            if 'wallhaven_toplist_2' not in os.listdir('./'):
                os.makedirs('wallhaven_toplist_2')
            #持久化存储
            with open('./wallhaven_toplist_2/'+file_name,'wb') as f:
                f.write(file)
            print(f'第{ 
          count}张图片下载完成'+img_url.split('-')[-1],'下载完成...')
            count+=1

五:保存的html本地文件以及代码都放在爬虫实战里的wallhaven图片爬取1.0里,需要自取。(大家不要担心github进不去的问题,这里我给大家推荐一个快速进github的简单小妙招:下载网易uu加速器,选择学术资源加速即可)

六:不要说爬得慢,毕竟我不想吃牢饭。(欸,还挺顺口,另外,2k图很大,慢,你忍一下)

标签: 20nnsvu2k传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台