IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python爬虫之使用requests进行图片爬取 -> 正文阅读

[Python知识库]python爬虫之使用requests进行图片爬取

前期回顾,关于python基础知识以及爬虫基础我们可以看?——>?python学习手册,网络安全的小伙伴千万不要错过。

图片爬取思路

学会这一技能需要我们会python基础,xpath解析,其用来解析出网页中图片所在的地址。解析出来地址就需要我们保存图片了。那如何将一张张图片保存下来了?我们可以使用requests的响应对象属性content来获取图片的二进制数据。接着就使用with open()函数进行保存就行了,这样一张图片就获取到了。是不是很简单了!

  1. 获取网页源代码
  2. 解析出图片地址
  3. 获取图片二进制数据 requests.get(xx).content
  4. 生成图片名称
  5. 设置图片的保存地址=文件地址+图片名称
  6. 保存图片 with open(图片保存地址,'wb') as f:

思路分析

网站地址为:4K美女壁纸_高清4K美女图片_彼岸图网

1. xpath提取图片地址

?如下查看元素我们发现,所有的图片地址都是包含在一个个的li标签中,li标签中又有a标签和img标签,而图片地址就为img标签中的src的属性值,所以我们提取出属性值就能将图片地址获取。

但是这样只是获取到的略缩图的地址,我们点击图片进行后发现存在比原来图片像素更高的图片。所以我们这里就获取更加高清的美女图片。

所以接下来就分析略缩图与其高清图之间的关系。我们发现略缩图中href的属性值就是请求高清图所在页面的地址。所以我们这里将href属性值获取然后向其发送请求就能获取到高清图所在源码,然后用xpath将高清图下载地址提取出来,就能够成功下载了。

?代码编写

import requests
import os
from lxml import etree

headers={
    'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36'
}

#实现爬取前10页略缩图片地址,并存放在列表中
def lue():
    list_lue = []
    for i in range(1,11):    
        if i > 1:
            url = f'https://pic.netbian.com/4kmeinv/index_{i}.html'
        else:
            url = 'https://pic.netbian.com/4kmeinv/index.html'
        response_text = requests.get(url,headers=headers,timeout=15).text

        #实例化etree对象
        tree = etree.HTML(response_text)
        #提取出高清图所在页面地址
        r = tree.xpath('//ul[@class="clearfix"]/li/a/@href') 
        for i in r:
            list_lue.append(i)
    return list_lue
#获取高清图下载地址及名称
def gao(b):
    if not os.path.exists('./高清美女'):
            os.mkdir('./高清美女')
    for i in b:
        url = "https://pic.netbian.com"+i    #高清图所在页面地址
        response = requests.get(url=url,headers=headers,timeout=15)
        response.encoding = 'gbk'     #解决中文乱码
        response_text = response.text
        response_text
        tree = etree.HTML(response_text)
        #最终高清图的下载地址
        img_src = 'http://pic.netbian.com'+ tree.xpath('//div[@class="photo-pic"]/a/img/@src')[0]
        #图片名
        img_name = tree.xpath('//div[@class="photo-pic"]/a/img/@title')[0]
        #获取图片二进制数据
        img_content = requests.get(img_src,headers=headers,timeout=3).content
        img_path = './高清美女/'+img_name+'.jpg'
        with open(img_path,'wb') as f:
            f.write(img_content)
        print(img_name+'.jpg下载完毕')
    print("美女图片全部下载完毕!")
    
def main():
    b = lue()
    gao(b)
if __name__ == '__main__':
    main()

?

?欢迎有志青年和我一起学习

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 11:45:45  更:2021-10-08 11:45:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:14:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码