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爬虫 爬取图片 -> 正文阅读

[Python知识库]python爬虫 爬取图片

图片

爬取单张图片

#网址:https://pic.netbian.com/   我们爬取:https://pic.netbian.com/4kmeinv/
from lxml import etree
import requests
import os

if __name__=="__main__":
    if not os.path.exists('zhaopian'):
        os.mkdir('zhaopian')

    headers={
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
    }
    url='https://pic.netbian.com/4kmeinv/'

    response=requests.get(url=url,headers=headers)
    #response.encoding= 'utf-8'
    resp=response.text
    #数据解析
    tree=etree.HTML(resp)


    li_list=tree.xpath('//div[@class="slist"]/ul/li')

    for li in li_list:
        tupian_src='https://pic.netbian.com'+li.xpath('./a/img/@src')[0]
        #print(tupian_src)
        name=li.xpath('./a/b/text()')[0]+'.jpg'
        name = name.encode('iso-8859-1').decode('gbk')
        #print(name)

        data=requests.get(url=tupian_src,headers=headers).content
        #存储地址
        path='zhaopian/'+name

        with open(path,'wb') as fp:
            fp.write(data)
            print("下载成功!!!")
import os
import requests
from lxml import etree
header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.5211 SLBChan/25"
}

url = "https://pic.netbian.com/4kmeinv/"

girl_data=requests.get(url=url,headers=header).text
# 处理乱码  .decode('gbk')  可去掉
girl_data=girl_data.encode("iso-8859-1").decode('gbk')
#实例化模型
girl_etree=etree.HTML(girl_data)

#xpath表达式代码后说明
picture_loc=girl_etree.xpath("//ul[@class='clearfix']/li/a/img/@src")
picture_name_list=girl_etree.xpath("//ul[@class='clearfix']/li/a/img/@alt")

#新增文件夹
if not os.path.exists("you_knew_about_picture"):
    os.mkdir("./you_knew_about_picture")

#增加索引定 picture_name_list
for i,each_loc in enumerate(picture_loc):
	#完整网址
    new_loc="https://pic.netbian.com/"+each_loc
    #爬取图片    
    each_picture_data=requests.get(new_loc,headers=header).content
    #each_picture_name由文件路径和名组成
    each_picture_name="you_knew_about_picture/"+picture_name_list[i]+".jpg"
    #打开文件
    fp=open(each_picture_name,mode="wb")
    #写入
    fp.write(each_picture_data)
    fp.close()
    #提示完成
    print(each_picture_name.split("/")[-1]+" have been over")

爬取多张图片

#爬取多页:第一页;https://pic.netbian.com/4kmeinv/
#第二页:https://pic.netbian.com/4kmeinv/index_2.html
#第三页:https://pic.netbian.com/4kmeinv/index_3.html
import requests
from lxml import etree
import os

#爬取2-4页
if __name__=="__main__":
    if not os.path.exists('zhao'):
        os.mkdir('zhao')
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
    }

    for i in range(2,5):
        url=f'https://pic.netbian.com/4kmeinv/index_{i}.html'
        #print(url)
        resp=requests.get(url=url,headers=headers).text

        tree=etree.HTML(resp)
        li_list=tree.xpath('//*[@id="main"]/div[3]/ul/li')
        for li in li_list:
            src_url='https://pic.netbian.com'+li.xpath('./a/img/@src')[0]
            #print(src_url)
            src_name=li.xpath('./a/b/text()')[0]+'.jpg'
            name=src_name.encode('iso-8859-1').decode('gbk')
            #print(name)
            data=requests.get(url=src_url,headers=headers).content
            path='zhao/'+name

            with open(path,'wb') as fp:
                fp.write(data)
                print('下载成功!!!')


别人代码

import os
import requests
from lxml import etree

header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.5211 SLBChan/25"
}

picture_loc = []  # 图片存地址
picture_name_list = []  # 存图片名
# 第2,3页图片,可自行调节
# 不能包括1,因为1页面网址和后面网址不一样,如想包括,可添加if条件判断
for i in range(2, 4):
    # 一定要在循环内,否则一直为"https://pic.netbian.com/4kmeinv/index_2.html"
    # 关于为什么后面是/4kmeinv/index_{0}.html 代码后讲解
    url = "https://pic.netbian.com/4kmeinv/index_{0}.html"
    url = url.format(i)
    girl_data = requests.get(url=url, headers=header).text
    girl_data = girl_data.encode("iso-8859-1").decode('gbk')
    girl_etree = etree.HTML(girl_data, )
    # 地址压入
    picture_loc.extend(girl_etree.xpath("//ul[@class='clearfix']/li/a/img/@src"))
    # 图片名压入
    picture_name_list.extend(girl_etree.xpath("//ul[@class='clearfix']/li/a/b/text()"))

if not os.path.exists("you_knew_about_picture"):
    os.mkdir("./you_knew_about_picture")

a = 0  # 记录图片个数
for i, each_loc in enumerate(picture_loc):
    new_loc = "https://pic.netbian.com/" + each_loc

    each_picture_data = requests.get(new_loc, headers=header).content

    each_picture_name = "you_knew_about_picture/" + str(a) + " . " + picture_name_list[i] + ".jpg"

    fp = open(each_picture_name, mode="wb")
    fp.write(each_picture_data)
    fp.close()

    print(each_picture_name.split("/")[-1] + " have been over")
    a = a + 1
print(a)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-20 18:21:00  更:2021-11-20 18:21:28 
 
开发: 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/16 0:34:08-

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