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

下面是使用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日

相关文章

  • 零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)

    好,现在进入高阶代码篇。 目的: 爬取昆明市中学的兴趣点POI。 关键词:中学 已有ak:9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 昆明市坐标范围: 左下角:24.390894,102.174112 右上角:26.548645,103.678942 URL模板: http://api.map.baidu.com/place/v2/se…

    爬虫 2023年4月11日
    00
  • 浅析python3中的os.path.dirname(__file__)的使用

    当我们在Python中编写脚本时,我们经常需要对文件进行操作。操作文件时,我们需要知道文件的完整路径或相对路径。在Python中,我们可以使用os.path模块来对路径进行操作。 在Python3中,os.path.dirname(file)是一个常用的表达式,它返回当前脚本文件的目录路径。 下面是一个简单的示例,演示了os.path.dirname(fil…

    python 2023年6月2日
    00
  • python 包实现 urllib 网络请求操作

    Python包中的urllib模块提供了一组用于处理URL的标准Python库。它包含了用于发送HTTP请求、处理cookie、处理URL编码等功能。本文将介绍如何使用Python包实现urllib网络请求操作,并提供两个示例。 1. 使用urllib.request发送GET请求 我们可以使用urllib.request发送GET请求。以下是一个示例,演示…

    python 2023年5月15日
    00
  • Python安装与基本数据类型教程详解

    Python安装教程 1. 下载安装包 首先,从Python官方网站(https://www.python.org/downloads/)下载最新版本的Python安装包。 2. 运行安装包 下载完成之后,双击运行安装包。在安装界面中选择“Install Now”以开始安装。 3. 配置环境变量 安装完成之后,需要将Python安装路径添加到系统环境变量中。…

    python 2023年5月20日
    00
  • 利用python将图片版PDF转文字版PDF

    下面是“利用Python将图片版PDF转换为文字版PDF”的完整攻略,具体流程如下: 准备工作 为了完成PDF转换,你需要先准备以下工具: 1.OCR(Optical Character Recognition,光学字符识别)库,用于将图片中的文字转换成文本格式,比较常用的有pytesseract和easyOCR;2.Python环境。 在第一步,你需要安装…

    python 2023年5月18日
    00
  • Python实现简单的2048小游戏

    Python实现简单的2048小游戏 介绍 2048游戏是一种益智类的数字游戏,玩家需要通过合并相同数字方块来达到最高得分。在本文中,我们将介绍如何使用 Python 语言来实现一个简单的 2048 小游戏。 实现步骤 1. 创建游戏的框架 首先,我们需要创建一个棋盘,用于存储数字方块的位置和值。为了方便起见,我们可以使用一个二维列表来表示棋盘,列表中的每个…

    python 2023年5月19日
    00
  • Python语言实现SIFT算法

    下面是详细讲解“Python语言实现SIFT算法”的完整攻略,包含两个示例说明。 SIFT算法 SIFT算法是一种用于图像特征提取和匹配的算法。它的基本思想是在图像中寻找关键点,并计算这些关键点的局部特征描述。这些特征描述符可以用于图像匹配、目标识别、三维重建等用。 SIFT算法的主要步骤包括: 尺度空间极值检测:在不同的尺度空间中寻找图中的极值点,用于确定…

    python 2023年5月14日
    00
  • 基于Python 函数和方法的区别说明

    Python 函数和方法的区别说明 在Python编程中,函数和方法是两个常见的概念,初学者可能会混淆二者之间的区别。本文将详细讲解Python函数和方法的区别,以及二者的使用方法和注意事项。 函数和方法的定义 函数: 函数是在Python中定义的一段代码块,用于某一特定功能的实现。通常情况下,函数定义所在的模块中并没有包含任何类或者对象。函数定义格式为: …

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