爬虫项目(四):抓取网页所有图片

news2024/11/25 7:31:20

文章目录

    • 一、书籍推荐
    • 二、完整代码
    • 三、运行结果

一、书籍推荐

推荐本人书籍《Python网络爬虫入门到实战》 ,详细介绍见👉: 《Python网络爬虫入门到实战》 书籍介绍

二、完整代码

原理:抓取该链接中所有的图片格式。基于selenium来获取,自动下载到output文件夹中。

from selenium import webdriver
import requests as rq
import os
from bs4 import BeautifulSoup
import time

# Enter Path : chromedriver.exe
# Enter URL : http://www.netbian.com/meinv/index_2.htm

path = input("Enter Path : ")
url = input("Enter URL : ")
output = "output"


def get_url(path, url):
    driver = webdriver.Chrome(executable_path=r"{}".format(path))
    driver.get(url)
    print("loading.....")
    res = driver.execute_script("return document.documentElement.outerHTML")
    return res


def get_img_links(res):
    soup = BeautifulSoup(res, "lxml")
    imglinks = soup.find_all("img", src=True)
    return imglinks


def download_img(img_link, index):
    try:
        extensions = [".jpeg", ".jpg", ".png", ".gif"]
        extension = ".jpg"
        for exe in extensions:
            if img_link.find(exe) > 0:
                extension = exe
                break
        img_data = rq.get(img_link).content
        with open(output + "\\" + str(index + 1) + extension, "wb+") as f:
            f.write(img_data)
        f.close()
    except Exception:
        pass


result = get_url(path, url)
time.sleep(60)
img_links = get_img_links(result)
if not os.path.isdir(output):
    os.mkdir(output)
for index, img_link in enumerate(img_links):
    img_link = img_link["src"]
    print("Downloading...")
    if img_link:
        download_img(img_link, index)
print("Download Complete!!")

三、运行结果

如下所示:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1024171.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式数据库(笔记)

课程链接:015_数据库系统的用户接口以及SQL语言(一)_哔哩哔哩_bilibili 1、分类 DDB:物理上分散,逻辑上集中 特点: 有统一的全局模式靠分布式数据库管理系统实现 DDBMS分布在网络的不同节点上 优点&am…

Responder

环境准备 操作系统:Kali Linux工具:responder,john,evil-winrm PS:输入以下命令解决靶场环境无法打开问题 #echo "<靶机IP> unika.htb">>/etc/hostsresponder工具 [Kali 官网] 手册地址:https://www.kali.org/tools/responder/ 摘要: This package c…

ubuntu 里根文件系统的扩容,/dev/ubuntu-vg/ubuntu-lv 文件系统扩充到整个分区

笔者安装了ubuntu服务器版软件&#xff0c;由于系统安装的时候没有划分好磁盘分区&#xff0c;只采用了1000G固态硬盘的 200G来安装系统&#xff0c;安装完毕后&#xff0c;用df -h 命令查看如下&#xff1a; 根文件系统仅占用了 196G&#xff0c;而本身硬盘的尺寸为1000G&…

C++笔记之std::forward

C笔记之std::forward 文章目录 C笔记之std::forward例一例二 std::forward的作用是在C中帮助实现完美转发&#xff08;perfect forwarding&#xff09;&#xff0c;它将传递给它的参数以原始类型和引用的方式传递给下一个函数&#xff0c;保持参数的值类别&#xff08;lvalue或…

爬虫 — Js 逆向

目录 一、概念1、爬虫2、反爬虫3、加密解密4、加密5、步骤 二、常用加密方式1、加密方式2、常见加密算法3、JS 中常见的算法4、MD5 算法4.1、MD5 加密网站4.2、特点 5、DES/AES 算法6、RSA 算法7、base64 算法 三、环境配置1、node.js 环境配置2、PyCharm 环境配置 一、概念 1…

【AI视野·今日NLP 自然语言处理论文速览 第三十六期】Tue, 19 Sep 2023

AI视野今日CS.NLP 自然语言处理论文速览 Tue, 19 Sep 2023 (showing first 100 of 106 entries) Totally 106 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Speaker attribution in German parliamentary debates with QLoRA-ada…

xp 系统 安装 python 2.7 ide pip

1 下载python http://www.python.org/ftp/python/ python-2.7.2.msi 安装完需要设置环境变量 2 下载 setuptools setuptools-0.6c11.win32-py2.7.exe https://pypi.tuna.tsinghua.edu.cn/simple/setuptools/ 3 下载 pip &#xff0c;python 2.7 最高支持 pip 20.3.4 https:…

安全远程访问工具

什么是安全远程访问 安全远程访问是指一种 IT 安全策略&#xff0c;允许对企业网络、任务关键型系统或任何机密数据进行授权、受控访问。它使 IT 团队能够根据员工和第三方的角色和工作职责为其提供不同级别的访问权限&#xff0c;安全的远程访问方法可保护系统和应用程序&…

C语言指针讲解-------进阶篇(下篇)

目录 六.函数指针数组 七.指向函数指针数组的指针 八.回调函数 冒泡排序 与 qsort 函数 冒泡排序 qsort函数 六.函数指针数组 函数指针数组---数组存放的是函数 ---指针存放的是函数的地址 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int Add(int x, in…

TuyaLink 快速入门教程

通过本入门教程&#xff0c;大家能了解到如何在涂鸦 IoT 开发平台上使用 TuyaLink 完成智能设备接入。并通过 Java 程序&#xff0c;在 IntelliJ IDEA 中使用 TuyaLink 的 GitHub Demo 工程&#xff0c;对一个电工开关设备&#xff0c;实现基本的数据上报下发功能。 准备工作 …

分类预测 | Matlab实现GA-RF遗传算法优化随机森林多输入分类预测

分类预测 | Matlab实现GA-RF遗传算法优化随机森林多输入分类预测 目录 分类预测 | Matlab实现GA-RF遗传算法优化随机森林多输入分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现GA-RF遗传算法优化随机森林多输入分类预测&#xff08;完整源码和数据&…

细说GNSS模拟器的RTK功能(四)应用实例02

在之前的文章中&#xff0c;我们详细介绍了什么是RTK&#xff0c;并且用一个基于RTCM插件的RTK使用实例&#xff0c;来模拟RTCM的使用&#xff0c;本期文章我们将通过另一种方式——基于多实例&#xff0c;来模拟两个同步的射频信号。 基于多实例 硬件设置 首先&#xff0c;需…

elasticsearch bulk 批量操作

1&#xff1a;bulk 是 elasticsearch 提供的一种批量增删改的操作API bulk 对 JSON串 有着严格的要求。每个JSON串 不能换行 &#xff0c;只能放在同一行&#xff0c;同时&#xff0c; 相邻的JSON串之间必须要有换行 &#xff08;Linux下是\n&#xff1b;Window下是\r\n&#…

zaabix实现对nginx监控

本文使用监控模板net.tcp.listen[port]实现监听端口 实验环境&#xff1a; 首先搭建好zabbix-server &#xff0c;zabbix-agenthttps://mp.csdn.net/mp_blog/creation/editor/132622769?spm1001.2014.3001.9457 而后在zabbix-agent主机上下载一个nginx 登录zabbix网站创建主…

JavaWeb开发-06-SpringBootWeb-MySQL

一.MySQL概述 1.安装、配置 官网下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/ 2.数据模型 3.SQL简介 二.数据库设计-DDL 1.数据库 官网&#xff1a;http:// https://www.jetbrains.com/zh-cn/datagrip/ 2.表&#xff08;创建、查询、修改、删除&#xff09; #…

vscode 插件配置推荐

VSCode汉化包插件 &#xff1a;Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code VSCode汉化包&#xff0c;原始默认是英文的所以我们需要下一个中文插件。 VSCode自动补全标签 &#xff1a;Auto Close Tag Auto Close Tag 对Html或Xml文件自动创建结…

【小程序】实现经典2048小游戏

概述 经典小游戏2048&#xff0c;2048小游戏对于逻辑要求还是很有技术含量的&#xff0c;有兴趣的可以看看 详细 以前学习时写的小游戏2048&#xff0c;技术含量还是不错的&#xff0c;有兴趣的可以看看 2048已经封装好了&#xff0c;在主页面直接引入文件可以直接调用 演…

SQLite 学习笔记2 - 常用命令和示例

———————————————— 版权声明&#xff1a;本文为CSDN博主「网易智企」的原创文章&#xff0c;遵循CC 4.0 BY-SA版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/netease_im/article/details/123741168 ————…

基于SpringBoot+Vue的健身房管理系统设计与实现

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

ASEMI代理瑞萨R7S721021VCFP#AA0芯片介绍

编辑-Z 型号&#xff1a;R7S721021VCFP#AA0 特性&#xff1a; 指令缓存大小&#xff1a;32 KB 数据缓存大小*2:32 KB TLB条目&#xff1a;128个条目 Jazelle架构扩展&#xff1a;完整 采用NEON技术的媒体处理引擎&#xff1a;包括在内 FPU&#xff1a;包括 PTM接口&am…