Python爬虫入门实战——彼岸图网

先给大家声明一下,本次爬虫仅为入门实战,爬取对象为彼岸图网,该网站图片尽为4k,但博主目前还爬不出来,爬取图的分辨率大概都为1202✖️676,日后如果博主能够爬取出来,一定分享给大家!

在这里插入图片描述

本次爬取采用的是requests+BeautifulSoup,如果对BeautifulSoup还不熟悉的小伙伴可参考我下面这篇文章
Beautiful快速入门教程


1、爬取结果

在这里插入图片描述

在这里插入图片描述

这里我只爬取的3页图片,小伙伴们可以爬取更多图片
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


2、网页查看

彼岸图网
在这里插入图片描述

可以看见,如下有着很多页数的图片,不要着急,待会我们会实现多页爬取功能
在这里插入图片描述
不同页数的请求链接分析
在这里插入图片描述
另外,由于当前页中的图片分辨率没有其详情页(也就是点击图片进去的页面)分辨率高,
所以咋们还是获取详情页中图片比较好一点

在这里插入图片描述

话不多说,咋们直接上代码分析


3、完整代码及注释分析

import requests
from bs4 import BeautifulSoup
import os

#请求头信息
headers = {
    
    
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
}

#找到并保存图片
def download(path,data):
	#参考图片辅助分析——图1,之后我就直接说参考图几了,小伙伴们注意点喽
    ul = data.find(class_="slist").find_all("li")
	
	#遍历li标签
    for li in ul:
    	#使用BeautifulSoup进行解析
        li_data = BeautifulSoup(str(li), "html.parser")
        #参考图2
        #详情页url,注意获取的url不是全路径,我们还要拼接下前面的域名
        page_url = "http://pic.netbian.com/" + li_data.find("a")['href']
        #图片名称
        title = li_data.find("img")['alt']
		
		#对详情页发起请求
        page_data = requests.get(url=page_url, headers=headers)
        #解析
        response_data = BeautifulSoup(page_data.text, "html.parser")
        
        #获取详情页图片url,参考图3,注意拼接域名
        img_url = "http://pic.netbian.com" + response_data.find(class_="photo-pic").find("img")['src']
		#对图片URL发起请求  注意: .content使用二进制数据,不使用就会报错
        img_res = requests.get(url=img_url, headers=headers).content
		#保存图片
        with open(path + "/" + title + ".jpg", "wb") as f:
            print("正在保存:"+title)
            f.write(img_res)

#开始
if __name__ == '__main__':
	#定义保存文件夹路径
    path = "./图片"
    #如果不存在
    if not os.path.exists(path):
    	#创建该文件夹
        os.mkdir(path)
	#多页爬取,这里爬取的是3页
    for i in range(1,4):
    	#这里我们做精细一点,再对图片进行不同页数的区分
        data_path = path + "/" + str(i)
        if not os.path.exists(data_path):
            os.mkdir(data_path)
		
		#第一页比较特殊,我们进行if判断
        if i == 1:
            url = "http://pic.netbian.com/index.html"
        else:
        	#其他的页数直接拼接就好,注意 i 要为str类型
        url = "http://pic.netbian.com/index_"+str(i)+".html"
        #发起请求
        response = requests.get(url=url, headers=headers)
        #注意设置编码,不然都是一堆乱码
        response.encoding = 'gbk'
        #使用BeautifulSoup进行解析
        data = BeautifulSoup(response.text, "html.parser")
        #将保存路径和请求后的数据传给 download
        download(data_path,data)

3、图片辅助分析

图1
在这里插入图片描述
图2
在这里插入图片描述
图3
在这里插入图片描述


博主会持续更新,有兴趣的小伙伴可以点赞、关注和收藏下哦,你们的支持就是我创作最大的动力!

更多博主开源爬虫教程目录索引(宝藏教程,你值得拥有!)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/llllllkkkkkooooo/article/details/108545141