Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【python爬虫 2】BeautifulSoup快速抓取网站图片

【python爬虫 2】BeautifulSoup快速抓取网站图片

作者头像
大家一起学编程
发布于 2022-01-25 10:36:03
发布于 2022-01-25 10:36:03
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

前言

学习,最重要的是要了解它,并且使用它,正所谓,学以致用、本文,我们将来介绍,BeautifulSoup模块的使用方法,以及注意点,帮助大家快速了解和学习BeautifulSoup模块。有兴趣了解爬虫的小伙伴们,赶快学起来吧。

第一步:了解需求

在开始写之前,我们需要知道我们要做什么?做爬虫。

抓取什么?抓取网站图片。

在什么地方抓取?图片之家_图片大全_摄影图片为主的国内综合性图片网

大家可以用这个网站练练手,页面也是比较简单的。

第二步:分析网站因素

我们知道我们需要抓取的是那一个网站数据,因此,我们要来分析一下网站是如何提供数据的。

根据分析之后,所有页面似乎都是相同的,那我们选择一个摄影图来为大家做演示。

1、获取列表标题,以及链接

进一步研究页面数据,每一个页面,下方都有一个列表,然后通过列表标题,进入到下一级中。那这个页面我们需要获取列表标题。

2、获取图片列表,以及链接,以及翻页操作

继续分析,点击链接进入之后,发现有已经有图片了列表,并且还可以翻页。

3、获取图片详情,所有图片

再点击继续研究,发现图片还有多张。

分析完成,我们来编写代码。

流程图如下:

第三步:编写代码实现需求

1、导入模块

导入我们需要使用到的所有模块。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os
import re
from bs4 import BeautifulSoup
import requests
import time

2、获取列表标题,以及链接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def tupianzj():
  """获取标题,链接"""
  response = requests.get(url="https://www.tupianzj.com/sheying/",headers=headers)
  response.encoding="gbk"
  Soup = BeautifulSoup(response.text, "html.parser")
  list_title=Soup.find_all("h3",{"class":"list_title"})
  list=[]
  for i in list_title:
    list.append({'name':i.get_text(),'url':i.find("a").get("href")})
  return list

3、获取分类列表标题,链接,以及翻页。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def tu_list(url,page):
  """获取类比列表"""
  response = requests.get(url,headers=headers)
  response.encoding="gbk"
  Soup = BeautifulSoup(response.text, "html.parser")
  list_title=Soup.find_all("ul",{"class":"list_con_box_ul"})[0].find_all("li")
  for i in list_title:
    for j in i.find_all("a"):
      try:
        j.find("img").get("src")
        name=j.get("title")#列表列表图片名称
        url1="https://www.tupianzj.com"+j.get("href")[0:-5]#类比列表图片详情链接
        text=Soup.find_all("div",{"class":"pages"})[0].find_all("a")[1].get("href")#下一页
        page1=Soup.find_all("span",{"class":"pageinfo"})[0].find("strong").get_text()#获取总页数
        url2=url+text[0:-6]+page+".html"
        print(url2,page1)
        try:
          os.mkdir(name)#创建文件
        except:
          pass
        tu_detail(name,url1,2)
        if page==1:
          for z in range(2,int(page1))
            tu_list(url2,page)
      except:
        pass

4、获取详情图片,并保存

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def tu_detail(path,url,page):
  """获取详情"""
  if page<=2:
    page=2
  response = requests.get(url+"_"+str(page)+".html",headers=headers)
  response.encoding="gbk"
  Soup = BeautifulSoup(response.text, "html.parser")
  img_url=Soup.find("img",id="bigpicimg").get("src")
  with open(path+"\\"+str(int(time.time()*1000000))+".jpg","wb") as f:
    img=requests.get(img_url,headers=headers).content
    f.write(img)
  text=Soup.find_all("div",{"class":"pages"})[0].find("a")
  page1=re.findall(r"\d+",text.decode())[0]
  if page==2:
    for i in range(int(page)+1,int(page1)+1):
      tu_detail(path,url,i)
  else:
    return

知识点总结

学会此文,可掌握知识点。

1、掌握BeautifulSoup

区分find,find_all的用法:find,查找第一个返回字符串,find_all 查找所有,返回列表

区分get,get_text的用法:get获取标签中的属性,get_text获取标签包围的文字。

2、掌握正则,re.findall 的使用

3、掌握字符串切片的方式 str[0,-5] 截取第一个文字,到倒数第5个文字。

4、掌握创建文件夹的方法os.mkdir(name)

5、掌握with open(f,w) as f:的用法

6、掌握requests模块的get请求方法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大家一起学编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
爬取一本小说的python爬虫代码
GeekLiHua
2025/01/21
1930
爬取一本小说的python爬虫代码
Python从入门到入土-网络爬虫(BeautifulSoup、lxml解析网页、requests获取网页)
CSDN话题挑战赛第2期 参赛话题:学习笔记 BeautifulSoup 获取所有p标签里的文本 # 获取所有p标签里的文本 # -*- coding: UTF-8 -*- from bs4 import BeautifulSoup # 在此实现代码 def fetch_p(html): soup = BeautifulSoup(html, 'lxml') p_list = soup.find_all("p") results = [p.text for p in p_lis
共饮一杯无
2022/11/28
1K0
【Python爬虫五十个小案例】爬取中国天气网城市天气
文章链接:https://cloud.tencent.com/developer/article/2472928
小馒头学Python
2024/12/02
1.5K0
【Python爬虫五十个小案例】爬取中国天气网城市天气
python用BeautifulSoup库简单爬虫入门+案例(爬取妹子图)
(adsbygoogle = window.adsbygoogle || []).push({});
双面人
2019/04/10
1.6K0
python爬虫beautifulsoup4系列3
前言 本篇手把手教大家如何爬取网站上的图片,并保存到本地电脑 一、目标网站 1.随便打开一个风景图的网站:http://699pic.com/sousuo-218808-13-1.html 2
上海-悠悠
2018/04/08
6610
python爬虫beautifulsoup4系列3
Python爬虫入门案例详细教程
刚入门的新手想要一个快速上手的爬虫案例。案例要简单易懂,步骤清晰,不需要复杂的设置。然后,考虑使用哪个库。Requests和BeautifulSoup是比较常见且容易上手的组合,适合静态页面。如果用户以后需要处理动态内容,可能需要提到Selenium或Scrapy,但作为入门案例,先保持简单。
华科云商小徐
2025/04/03
2560
【Python爬虫实战】从单线程到线程池:掌握三种高效爬虫实现方式
在现代网络爬虫的开发中,性能和效率往往是关键考量因素。无论是初学者还是有经验的开发者,了解不同爬虫实现方式及其优缺点,都是提升爬虫效率的必经之路。本文将深入探讨三种常见的爬虫实现方式:单线程爬虫、多线程爬虫,以及使用线程池的多线程爬虫,并通过详细的代码示例帮助读者掌握如何高效进行网页数据抓取。无论你的目标是爬取少量页面还是大规模数据,本文都将提供有效的解决方案。
易辰君
2024/11/07
3650
爬虫篇| 网页解析库xpath和BeautifulSoup(五)
BeautifulSoup 是一个可以从HTML或XML文件中提取数据的Python库,它的使用方式相对于正则来说更加的简单方便,常常能够节省我们大量的时间。
润森
2019/08/29
3.1K0
爬虫篇| 网页解析库xpath和BeautifulSoup(五)
Python 爬虫:如何用 BeautifulSoup 爬取网页数据
在网络时代,数据是最宝贵的资源之一。而爬虫技术就是一种获取数据的重要手段。Python 作为一门高效、易学、易用的编程语言,自然成为了爬虫技术的首选语言之一。而 BeautifulSoup 则是 Python 中最常用的爬虫库之一,它能够帮助我们快速、简单地解析 HTML 和 XML 文档,从而提取出我们需要的数据。
王也518
2023/12/22
1.7K0
Python爬虫快速入门,BeautifulSoup基本使用及实践
今天来跟大家分享用 BeautifulSoup 获取信息的一些知识点,文章内容由公众号读者 Peter 创作。
小小詹同学
2021/07/27
3.6K0
Python爬虫快速入门,BeautifulSoup基本使用及实践
图解爬虫,用几个最简单的例子带你入门Python爬虫
爬虫一直是Python的一大应用场景,差不多每门语言都可以写爬虫,但是程序员们却独爱Python。之所以偏爱Python就是因为她简洁的语法,我们使用Python可以很简单的写出一个爬虫程序。本篇博客将以Python语言,用几个非常简单的例子带大家入门Python爬虫。
DeROy
2021/01/20
1.4K0
图解爬虫,用几个最简单的例子带你入门Python爬虫
使用Python和BeautifulSoup进行网页爬虫与数据采集
在互联网时代,数据是最宝贵的资源之一,而获取数据的能力则是数据分析、人工智能等领域的基础技能。本文将深入探讨如何使用Python和BeautifulSoup库进行网页爬虫与数据采集。我们将从基本概念入手,逐步展示如何搭建一个简单而功能强大的网页爬虫,并通过具体的代码实例引导您完成数据采集任务。
一键难忘
2024/10/14
1K0
python用法总结
import requests form bs4 import BeautifulSoup response = requests.get('http://www.baidu.com') print(response.status_code) # 打印状态码 print(response.url) # 打印请求url print(response.headers) # 打印头信息 print(response.cookies) # 打印cookie信息 print(response.text) #以文本形式打印网页源码 print(response.content) #以字节流形式打印
py3study
2020/01/09
5090
Python爬虫实战-抓取《盗墓笔记》所有章节及链接
本次以一个盗墓笔记的小说阅读网(http://seputu.com)为例,抓取盗墓笔记的标题、章节名和链接,如下图 前提: 这是一个静态网站,标题、章节都不是由JavaScript动态加载的,无代理,
爱吃西瓜的番茄酱
2018/04/04
1.8K0
Python爬虫实战-抓取《盗墓笔记》所有章节及链接
使用Python爬虫下载某网站图片
Python爬虫是一种自动化获取网页数据的技术,可以用于各种数据采集任务。本文将探讨如何使用Python爬虫下载某网站的图片。通过以下几个方面进行详细阐述。
很酷的站长
2023/09/16
1.4K1
使用Python爬虫下载某网站图片
Python 30个爬虫案例代码(待续)
1. 爬虫的合法性:在爬取网站数据时,需要遵守网站的规定和法律法规,不得进行非法爬取和侵犯他人隐私等行为。
疯狂的KK
2023/05/22
9130
Python 30个爬虫案例代码(待续)
python爬虫爬图片教程_爬虫爬取图片的代码
根据观察,除了第一页,其他页后缀都为*.html一共13页 所以我们可以通过for遍历所有页码
全栈程序员站长
2022/11/17
9540
python爬虫爬图片教程_爬虫爬取图片的代码
深入探索 Python 爬虫:高级技术与实战应用
Python 爬虫是一种强大的数据采集工具,它可以帮助我们从互联网上自动获取大量有价值的信息。在这篇文章中,我们将深入探讨 Python 爬虫的高级技术,包括并发处理、反爬虫策略应对、数据存储与处理等方面。通过实际的代码示例和详细的解释,读者将能够掌握更高级的爬虫技巧,提升爬虫的效率和稳定性。
用户10354340
2024/10/04
2390
我用Python爬虫爬取并分析了C站前100用户最高访问的2000篇文章
最近系统地学习了正则表达式,发现正则表达式最大的应用之一——网络爬虫之前一直没有涉猎,遂借此契机顺带写一个爬虫的demo备用。选择对象是CSDN排行榜前100用户,各自按访问量从高到低排序的前20篇文章,使用一些简单的数据分析手段看看技术热点,方便今后拓宽技术栈。
润森
2022/08/18
4010
我用Python爬虫爬取并分析了C站前100用户最高访问的2000篇文章
爬虫新手必经之路:掌握三大经典练手项目,抓取网页内容、链接、图片链接,练就爬虫高手的独门绝技!
requests库用于发送HTTP请求,BeautifulSoup库用于解析HTML。
小白的大数据之旅
2024/11/20
1450
推荐阅读
相关推荐
爬取一本小说的python爬虫代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验