【Python网络爬虫入门教程2】成为“Spider Man”的第二课:观察目标网站、代码编写

本文主要是介绍【Python网络爬虫入门教程2】成为“Spider Man”的第二课:观察目标网站、代码编写,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python 网络爬虫入门:Spider man的第二课

  • 写在最前面
    • 观察目标网站
    • 代码编写
  • 第二课总结

写在最前面

有位粉丝希望学习网络爬虫的实战技巧,想尝试搭建自己的爬虫环境,从网上抓取数据。

前面有写一篇博客分享,但是内容感觉太浅显了
【一个超简单的爬虫demo】探索新浪网:使用 Python 爬虫获取动态网页数据

本期邀请了擅长爬虫的朋友@PoloWitty,来撰写这篇博客。通过他的专业视角和实战经验,一步步引导我们入门,成为一名数据探索的“Spider Man”。

【Python网络爬虫入门教程1】成为“Spider Man”的第一课:HTML、Request库、Beautiful Soup库
【Python网络爬虫入门教程2】成为“Spider Man”的第二课:观察目标网站、代码编写
【Python网络爬虫入门教程3】成为“Spider Man”的第三课:从requests到scrapy、爬取目标网站


随着互联网数据的指数级增长,了解如何有效地提取这些信息变得越来越重要。无论是文本模型如ChatGPT,还是视觉模型如Stable Diffusion,它们的训练数据大多来源于互联网的海量数据。在这个日新月异的大数据时代,爬虫也算是其中不得不点的一项基础技能树了。

本系列文章将深入浅出地介绍Python网络爬虫的基础知识和技术,从 Requests 库到 Scrapy 框架的 入门级 使用,为你开启python网络爬虫的大门,成为spider man的一员,并最终以ScrapeMe网站作为目标示例,爬取下网站上的可爱又有趣的宝可梦照片。

在开始之前,还要啰嗦几句叠个甲,网络爬虫虽然强大,但在使用时必须遵守法律法规和网站的爬虫协议。不违法爬取数据,遵守相关法律法规哦~

请添加图片描述

这是本系列的第二篇文章,将会以ScrapeMe网站作为示例,展示如何使用第一课中学到的基础知识来对网站上的宝可梦图片进行爬取。

观察目标网站

首先,我们需要先对我们需要爬取的目标网站及目标内容进行一番观察。

直接点进目标网站,我们可以看到如下内容:

在这里插入图片描述

我们想要爬取的目标图像就处于中间位置。

再观察一下如何获取到不同page上的所有图片,点击不同page并观察对应的链接地址可以发现,通过在请求的地址链接中加入page参数,便可以访问不同的链接了。比如https://scrapeme.live/shop/page/2/?orderby=popularity,就是第二个page对应的链接地址,通过不断更换page后面的参数,便可以访问到不同的page了。

代码编写

通过上面的观察分析,我们的爬虫代码思路便很清晰了:

  1. 通过改变url=f'https://scrapeme.live/shop/page/{pageNum}/?orderby=popularity'中的pageNum参数,获取到不同的page
    1. 获取当前page下所有图片的链接
    2. 利用requests去请求相应的链接并保存至本地文件夹中

通过上面的伪代码,我们便可以写出相应的爬虫程序了:

import requests
from bs4 import BeautifulSoupdef download_from_url(url:str):'''利用requests库,从相应的图片链接中下载对应的图片结果会保存到results文件夹中'''filename = url.split('/')[-1]with open(f'./results/{filename}','wb') as fp:fig_response = requests.get(url)fp.write(fig_response.content)if __name__=='__main__':for pageNum in range(1,49):url=f'https://scrapeme.live/shop/page/{pageNum}/?orderby=popularity'response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')# 找到所有的图片元素links = soup.find_all('img')for link in links:# 找到图片对应的链接fig_link = link.get('src')# 根据链接下载相应的图片download_from_url(fig_link)

然后我们可以看看我们爬取下来的宝可梦图片:

在这里插入图片描述

怎么样,是不是又优雅又简单hhh,轻轻松松拿捏住了🤏

第二课总结

通过本节课程,你应该已经对如何使用requests库和Beautiful Soup库编写爬虫程序有了更加深入的认识。恭喜你,你已经能够应付大多数的爬虫场景了,已经基本入门了python 网络爬虫的世界φ(゜▽゜*)♪

接下来,本系列课程的第三课,将讲述本系列课程的提高内容:利用scrapy库以应对更多更复杂的爬虫场景。

这篇关于【Python网络爬虫入门教程2】成为“Spider Man”的第二课:观察目标网站、代码编写的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/491984

相关文章

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以