爬虫学习:爬取一个网站的风景图片
用Python爬取一个网站图片
先看看主页的规律
这是他的地址:https://pic.netbian.com/4kfengjing/
它有200多页
第3页的地址
第4页的地址
发现规律!
第i页的地址为:https://pic.netbian.com/4kfengjing/index_i.html
再看看图片的规律
F12按一下看看
按照箭头顺序进行元素审查看看
点进跳转页面看看
可以发现,跳转页面的url规律,是主页https://pic.netbian.com/拼接上刚刚找到的那个href
对跳转页面进行元素审查
注意
直接上代码
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 1 11:40:22 2021
@author: koneko
"""
import requests
from bs4 import BeautifulSoup
#主页地址
home = 'https://pic.netbian.com'
headers={'User-Agent':'ozilla/5.0 (Windows NT10.0; WOW64\
AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/70.0.3538.25 Safari/537.36 \
Core/1.70.3870.400 QQBrowser/10.8.4405.400'}
n = 0 #下载的图片的序号
k = 2 #从第二页开始爬起
while k < 100: #爬取100个页面的照片
#获取主页面
url = 'https://pic.netbian.com/4kfengjing/index_'+str(k)+'.html'
response = requests.get(url, headers = headers)
response.encoding = 'gb18030'
soup = BeautifulSoup(response.text,'html.parser')
index_page = requests.get(url, headers = headers)
index_page.encoding = 'gb18030'
soup = BeautifulSoup(index_page.text,'html.parser')
#获取页面中 class="clearfix" 的ul板块,缩略图都在里面
clearfix = soup.find("ul", class_ = "clearfix")
#找到每一张图片的链接所在的<a>
a_list = clearfix.find_all('a')
#处理处最后一张的所有缩略图
for i in range(len(a_list)-1):
#拼接得到图片大图跳转页面的url
newurl = home+a_list[i]['href']
r = requests.get(newurl)
newpage = BeautifulSoup(r.text, 'html.parser')
#获取图片所在板块
photo_pic = newpage.find(id="img")
#获取图片下载链接
pic_url = home+photo_pic.find('img')['src']
#下载图片
pic = requests.get(pic_url)
#图片保存的路径
save_path = r'E:\爬虫图片\\'+str(n)+'.jpg'
print('正在保存第'+str(n)+'张图片...')
#以二进制写的形式打开
f = open(save_path,'wb')
f.write(pic.content)
n += 1
k += 1
最后效果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!