使用Python3编写抓取网页和只抓网页图片的脚本

yizhihongxing

下面是使用Python3编写抓取网页和只抓网页图片的脚本的完整攻略:

抓取网页的脚本

前置知识

在开始编写抓取网页的脚本之前,需要先了解一下Python中的以下库:

  1. requests:用于发送HTTP请求,即访问网页。
  2. beautifulsoup4:用于解析HTML代码,即从网页中提取所需的内容。

编写步骤

  1. 导入requests和beautifulsoup4库。
import requests
from bs4 import BeautifulSoup
  1. 确定要访问的网页链接。
url = "https://www.example.com"
  1. 发送HTTP请求,获取网页的HTML代码。
response = requests.get(url)
html = response.text
  1. 用beautifulsoup4解析HTML代码,提取所需的内容。
soup = BeautifulSoup(html, "html.parser")
title = soup.title.string
  1. 打印所需的内容。
print(title)

示例说明

以抓取百度首页上的标题为例。

import requests
from bs4 import BeautifulSoup

url = "https://www.baidu.com"
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html, "html.parser")
title = soup.title.string

print(title)

运行结果:

百度一下,你就知道

只抓网页图片的脚本

前置知识

在开始编写只抓网页图片的脚本之前,需要先了解一下Python中的以下库:

  1. requests:用于发送HTTP请求。
  2. os:用于创建保存图片的文件夹。
  3. BeautifulSoup:用于解析HTML代码。
  4. re:用于正则表达式匹配。

编写步骤

  1. 导入需要用到的库。
import requests
import os
from bs4 import BeautifulSoup
import re
  1. 确定要访问的网页链接。
url = "https://www.example.com"
  1. 发送HTTP请求,获取网页的HTML代码。
response = requests.get(url)
html = response.text
  1. 用beautifulsoup4解析HTML代码,找到所有的图片链接。
soup = BeautifulSoup(html, "html.parser")
img_tags = soup.find_all("img")
  1. 创建保存图片的文件夹。
if not os.path.exists("images"):
    os.mkdir("images")
  1. 遍历所有的图片链接,下载并保存图片。
for img in img_tags:
    src = img.get("src")
    if src is None:
        continue
    if re.match(r"^http(s)?://", src):
        img_url = src
    else:
        img_url = url + src
    img_name = img_url.split("/")[-1]
    try:
        img_data = requests.get(img_url, timeout=5).content
    except:
        continue
    with open("images/" + img_name, "wb") as fp:
        fp.write(img_data)

示例说明

以抓取百度图片搜索结果页的图片为例。

import requests
import os
from bs4 import BeautifulSoup
import re

url = "https://image.baidu.com/search/index?tn=baiduimage&word=cat"
response = requests.get(url)
html = response.text

soup = BeautifulSoup(html, "html.parser")
img_tags = soup.find_all("img")

if not os.path.exists("images"):
    os.mkdir("images")

for img in img_tags:
    src = img.get("src")
    if src is None:
        continue
    if re.match(r"^http(s)?://", src):
        img_url = src
    else:
        img_url = "https:" + src
    img_name = img_url.split("/")[-1]
    try:
        img_data = requests.get(img_url, timeout=5).content
    except:
        continue
    with open("images/" + img_name, "wb") as fp:
        fp.write(img_data)

运行结果:

该脚本将抓取百度图片搜索“猫”这个关键字的结果,并将所有图片保存在images文件夹中。

注意事项

需要注意的是,在抓取网页和只抓取网页图片的脚本中,都需要注意HTTP请求的响应代码,以判断请求是否成功。同时,在下载图片时要注意异常处理,防止程序崩溃。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Python3编写抓取网页和只抓网页图片的脚本 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • python之关于数组和列表的区别及说明

    当我们使用Python进行编程时,数组和列表都是常见的数据结构。它们可以帮助我们组织和管理数据,但它们之间也存在一些重要的区别。在本文中,将详细讲解Python中数组和列表的区别及说明。 数组与列表的区别 1.定义方法 在Python中,列表是一种内置的数据类型,可以使用中括号([])定义或使用内置的list()函数创建它。例如: myList = [1, …

    python 2023年6月3日
    00
  • python递归全排列实现方法

    下面是关于Python递归全排列实现方法的完整攻略: 什么是递归 递归是指一个函数在内部调用自身的过程。递归函数会让代码更加简洁但有时也会带来一些困惑和错误,它需要满足两个条件: 基线条件:一个条件语句,当满足此条件时,不再递归执行,直接返回结果。 递归条件:包含递归调用的条件语句。 全排列 全排列是指从一组数中取出一些数来进行排列,使得排列出来的各种组合方…

    python 2023年6月6日
    00
  • python 如何将数据写入本地txt文本文件的实现方法

    下面是 Python 如何将数据写入本地 txt 文本文件的实现方法完整攻略: 一、打开并写入文件 在 Python 中,文件的打开与关闭是需要我们手动来完成的。在这里,我将介绍使用 Python 内置函数 open() 打开文件,并将数据写入文本文件的方法。 1.1 打开文件 使用 open() 函数可以打开指定文件,函数中包含两个参数,第一个是文件的路径…

    python 2023年6月3日
    00
  • python 伯努利分布详解

    Python伯努利分布详解 在概率论和统计学中,伯努利分布是一种二元随机变量的离散概率分布,用于描述只有两种可能结果的随机试验。本文将详细讲解Python伯努利分布的概念、公式、参数、应用场景和实现方法,并提供两个示例。 什么是伯努利分布? 伯努利分布是一种离散概率分布,用于描述只有两种可能结果的随机试验,例如抛硬币、掷骰子等。伯努利分布的随机变量X只有两个…

    python 2023年5月15日
    00
  • python中文编码问题小结

    首先我们来讲一下“Python中文编码问题小结”。在Python中,中文编码问题一直是一个比较常见也比较困扰开发者的问题。在使用Python打开或读取中文文本时,往往需要进行编码或解码过程,否则会出现乱码。接下来我们将详细介绍几个与中文编码相关的概念及其使用方法。 Unicode编码 Unicode是一种字符集,其中包含了世界上大部分的字符。在Python中…

    python 2023年5月31日
    00
  • Python中的函数参数(位置参数、默认参数、可变参数)

    以下是“Python中的函数参数(位置参数、默认参数、可变参数)”的完整攻略: 一、问题描述 在Python中,函数参数可以分为三种类型:位置参数、默认参数和可变参数。本文将详细讲解这三种参数类型的使用方法和注意事项。 二、解决方案 2.1 位置参数 位置参数是最常见的函数参数类型。它们是按照位置顺序传递给函数的参数。以下是一个示例,演示了如何使用位置参数:…

    python 2023年5月14日
    00
  • Python三维绘图之Matplotlib库的使用方法

    我会为您详细讲解“Python三维绘图之Matplotlib库的使用方法”的完整攻略。 什么是Matplotlib库 Matplotlib库是Python的一个数据可视化工具,可以用来绘制2D和3D图形。它具有广泛的可定制性和高质量的图形输出。 在手动安装Matplotlib之前,建议检查系统中是否已经安装了Matplotlib。请使用以下命令检查: imp…

    python 2023年5月19日
    00
  • 详解Pycharm第三方库的安装及使用方法

    Pycharm第三方库的安装及使用方法 Pycharm是一款流行的Python集成开发环境,可以方便地安装和使用第三方库。本文将详细讲解Pycharm第三方库的安装及使用方法,包括如何使用Pycharm的包管理器、如何手动安装第三方库、如何使用第三方库等。 使用Pycharm的包管理器 Pycharm的包管理器可以方便地安装和管理第三方库。以下是一个示例,演…

    python 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部