使用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日

相关文章

  • Python 网络爬虫 008 (编程) 通过ID索引号遍历目标网页里链接的所有网页

    使用的系统:Windows 10 64位 Python 语言版本:Python 2.7.10 V 使用的编程 Python 的集成开发环境:PyCharm 2016 04 我使用的 urllib 的版本:urllib2 注意: 我没这里使用的是 Python2 ,而不是Python3 一 . 前言 通过之前两节(爬取一个网页 的网络爬虫 和 解决爬取到的网页…

    爬虫 2023年4月13日
    00
  • Python selenium的基本使用方法分析

    Pythonselenium的基本使用方法分析 Selenium是一个自动化测试工具,可以模拟用户在浏览器中的操作,例如点击、输入、滚动等。Python的Selenium库可以帮助我们使用Python编写自动化测试脚本,本攻略将介绍Selenium的基本使用方法。 安装Selenium 在使用Selenium之前,我们需要先安装Selenium库。可以使用p…

    python 2023年5月15日
    00
  • vue 事件获取当前组件的属性方式

    获取当前组件的属性是Vue组件中经常需要用到的操作。下面是完整的攻略过程: 在Vue组件内部定义事件处理函数,事件处理函数有一个默认的参数,称为事件对象,它包含了当前的Vue实例对象。 通过事件对象可以获取到该组件的属性,属性在Vue组件中存储在$this对象中。 使用$this对象可访问到Vue组件的属性和方法。其中,属性可用于显示数据,方法可用于业务逻辑…

    python 2023年6月13日
    00
  • 基于python实现计算且附带进度条代码实例

    下面是基于 Python 实现计算且附带进度条的完整攻略。 1. 文字说明 1.1 功能简介 本攻略将通过 Python 代码实现计算的功能,并添加进度条以改善用户体验。 1.2 实现思路 首先,我们需要安装进度条库 tqdm,可以通过以下命令在命令行中安装: pip install tqdm 然后,我们需要使用 Python 的循环语句进行计算,并在循环语…

    python 2023年6月3日
    00
  • 三大Python翻译神器再也不用担心学不好英语

    当今全球开发者中喜好Python语言的人越来越多,同时,Python也成了统计学和科学计算领域的通用工具。在Python开发中,我们经常需要查看英文文档、书籍甚至英文博客等内容。如果英文不好,这些资源可能会成为进一步深入学习和提高的障碍。为了解决这个问题,这里介绍三大Python翻译神器,帮助你摆脱英语学习的困难,实现Python技能的进一步提升。 翻译神器…

    python 2023年6月3日
    00
  • python字符串分割及字符串的一些常规方法

    下面是讲解“python字符串分割及字符串的一些常规方法”的完整攻略。 字符串分割 在 Python 中,可以使用内置的 split() 方法对字符串进行分割。 语法: str.split([sep[, maxsplit]]) 其中,str 表示要进行分割的字符串,sep 是分隔符,默认为所有的空字符,包括空格、换行符、制表符等,maxsplit 是分割的次…

    python 2023年6月5日
    00
  • Python爬取网站图片并保存的实现示例

    让我们来详细讲解一下 Python 爬取网站图片并保存的实现攻略。 一、思路 爬取网站图片并保存的思路大概分为以下几个步骤: 分析目标网站的 HTML 结构,找到图片的所在标签和属性; 获取网站内容; 解析网站内容,提取出图片的 URL; 下载图片到本地; 保存图片。 二、代码实现 1. 简单示例 下面是 Python 简单爬取图片的代码: import r…

    python 2023年6月3日
    00
  • 详解Python 类的__repr__方法转换字符串

    __repr__是Python类中的魔术方法之一,用于定义对象的字符串表示形式。该方法被调用时不需要显式地调用它,而是在使用repr()函数或交互式解释器显示变量时自动调用。其主要目的是为了方便人们查看对象的状态,以便在调试时使用。 下面我们来详细讲解Python类的__repr__方法转换字符串的使用方法。 定义__repr__方法 我们首先要在类的定义中…

    python-answer 2023年3月25日
    00
合作推广
合作推广
分享本页
返回顶部